Skip to content

Commit fd603d8

Browse files
committed
bug fixes
1 parent 001912a commit fd603d8

File tree

7 files changed

+88
-79
lines changed

7 files changed

+88
-79
lines changed

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
1+
**v0.8.9**
2+
=============================================
3+
4+
## Bug Fixes
5+
- Fixed Missing icons
6+
- Fixed all changes showing as untracked
7+
8+
**v0.8.8**
9+
=============================================
10+
11+
## Bug Fixes
12+
- Fixed issue were no changes should show but last change was still present
13+
- Removed SVN 1.9 requirement
14+
115
**v0.8.7**
216
=============================================
317

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "svn-scm",
33
"displayName": "SVN",
44
"description": "Integrated Subversion source control",
5-
"version": "0.8.7",
5+
"version": "0.8.9",
66
"publisher": "johnstoncode",
77
"engines": {
88
"vscode": "^1.16.0"

src/extension.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ function activate(context) {
99
const disposable = [];
1010
const svn = new Svn();
1111
const model = new Model(svn);
12-
const contentProvider = new SvnContentProvider();
12+
const contentProvider = new SvnContentProvider(model);
1313
const commands = new SvnCommands(model);
1414

1515
console.log("svn-scm is now active!");

src/repository.js

Lines changed: 46 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -46,67 +46,55 @@ Repository.prototype.provideOriginalResource = uri => {
4646
return new Uri().with({ scheme: "svn", query: uri.path, path: uri.path });
4747
};
4848

49-
Repository.prototype.update = function() {
50-
return new Promise((resolve, reject) => {
51-
let changes = [];
52-
let notTracked = [];
49+
Repository.prototype.update = async function() {
50+
let changes = [];
51+
let notTracked = [];
52+
let statuses = (await this.repository.getStatus()) || [];
5353

54-
this.repository
55-
.getStatus()
56-
.then(result => {
57-
result.forEach(item => {
58-
switch (item[0]) {
59-
case "A":
60-
changes.push(
61-
new Resource(this.repository.workspaceRoot, item[1], "added")
62-
);
63-
break;
64-
case "D":
65-
changes.push(
66-
new Resource(this.repository.workspaceRoot, item[1], "deleted")
67-
);
68-
break;
69-
case "M":
70-
changes.push(
71-
new Resource(this.repository.workspaceRoot, item[1], "modified")
72-
);
73-
break;
74-
case "R":
75-
changes.push(
76-
new Resource(this.repository.workspaceRoot, item[1], "replaced")
77-
);
78-
break;
79-
case "!":
80-
changes.push(
81-
new Resource(this.repository.workspaceRoot, item[1], "missing")
82-
);
83-
break;
84-
case "C":
85-
changes.push(
86-
new Resource(this.repository.workspaceRoot, item[1], "conflict")
87-
);
88-
break;
89-
case "?":
90-
notTracked.push(
91-
new Resource(
92-
this.repository.workspaceRoot,
93-
item[1],
94-
"unversioned"
95-
)
96-
);
97-
break;
98-
}
99-
});
54+
statuses.forEach(status => {
55+
switch (status[0]) {
56+
case "A":
57+
changes.push(
58+
new Resource(this.repository.workspaceRoot, status[1], "Added")
59+
);
60+
break;
61+
case "D":
62+
changes.push(
63+
new Resource(this.repository.workspaceRoot, status[1], "Deleted")
64+
);
65+
break;
66+
case "M":
67+
changes.push(
68+
new Resource(this.repository.workspaceRoot, status[1], "Modified")
69+
);
70+
break;
71+
case "R":
72+
changes.push(
73+
new Resource(this.repository.workspaceRoot, status[1], "Replaced")
74+
);
75+
break;
76+
case "!":
77+
changes.push(
78+
new Resource(this.repository.workspaceRoot, status[1], "Missing")
79+
);
80+
break;
81+
case "C":
82+
changes.push(
83+
new Resource(this.repository.workspaceRoot, status[1], "Conflict")
84+
);
85+
break;
86+
case "?":
87+
notTracked.push(
88+
new Resource(this.repository.workspaceRoot, status[1], "Unversioned")
89+
);
90+
break;
91+
}
92+
});
10093

101-
this.changes.resourceStates = changes;
102-
this.notTracked.resourceStates = notTracked;
94+
this.changes.resourceStates = changes;
95+
this.notTracked.resourceStates = notTracked;
10396

104-
resolve();
105-
})
106-
.catch(() => {
107-
reject();
108-
});
109-
});
97+
return Promise.resolve();
11098
};
11199

112100
module.exports = Repository;

src/resource.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,19 +58,19 @@ Resource.prototype.getIconPath = function(theme) {
5858
};
5959

6060
switch (this.type) {
61-
case "added":
61+
case "Added":
6262
return Icons[theme].Added;
63-
case "conflicted":
63+
case "Conflicted":
6464
return Icons[theme].Conflicted;
65-
case "deleted":
65+
case "Deleted":
6666
return Icons[theme].Deleted;
67-
case "modified":
67+
case "Modified":
6868
return Icons[theme].Modified;
69-
case "replaced":
69+
case "Replaced":
7070
return Icons[theme].Replaced;
71-
case "missing":
71+
case "Missing":
7272
return Icons[theme].Missing;
73-
case "unversioned":
73+
case "Unversioned":
7474
return Icons[theme].Unversioned;
7575
default:
7676
return 0;

src/svn.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ svn.prototype.getRepositoryRoot = async function(path) {
5252
let rootPath = result.match(/<wcroot-abspath>(.*)<\/wcroot-abspath>/i)[1];
5353
return rootPath;
5454
} catch (error) {
55-
throw new Error("not a SVN repo");
55+
throw new Error("Unable to find repository root path");
5656
}
5757
};
5858

@@ -126,3 +126,7 @@ Repository.prototype.commit = async function(message) {
126126
throw new Error("unable to commit files");
127127
}
128128
};
129+
130+
Repository.prototype.show = function(path) {
131+
return this.svn.show(path);
132+
};

src/svnContentProvider.js

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,22 @@
11
var vscode = require("vscode");
2-
var svn = require("./svn");
3-
var path = require("path");
42

5-
function SvnContentProvider() {
6-
this.svn = new svn();
3+
function SvnContentProvider(model) {
4+
this.model = model;
75
vscode.workspace.registerTextDocumentContentProvider("svn", this);
86
}
97

10-
SvnContentProvider.prototype.provideTextDocumentContent = function(uri) {
11-
return new Promise((resolve, reject) => {
12-
this.svn
13-
.show(uri.fsPath)
14-
.then(result => resolve(result))
15-
.catch(error => reject(error));
16-
});
8+
SvnContentProvider.prototype.provideTextDocumentContent = async function(uri) {
9+
const repository = this.model.getRepository(uri.fsPath);
10+
11+
if (!repository) {
12+
return "";
13+
}
14+
15+
try {
16+
return await repository.show(uri.fsPath);
17+
} catch (error) {
18+
return "";
19+
}
1720
};
1821

1922
module.exports = SvnContentProvider;

0 commit comments

Comments
 (0)