blob: ce824a53fc29e8f156ad99d98388b6d969f83453 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
--- qctlib/vcs/svn.py.orig 2009-02-15 23:49:32.000000000 +0100
+++ qctlib/vcs/svn.py 2009-07-22 17:58:33.000000000 +0200
@@ -84,6 +84,8 @@ class qctVcsSvn:
if showIgnored: extra = ['--no-ignore']
else: extra = []
+ versionOutput = runProgram([self.svn_exe, '--version', '--quiet'])
+ version = [int(s) for s in versionOutput.split(os.linesep)[0].split('.')]
statusOutput = runProgram([self.svn_exe, '--ignore-externals'] + extra + ['status'])
recs = statusOutput.split(os.linesep)
recs.pop() # remove last entry (which is '')
@@ -91,11 +93,19 @@ class qctVcsSvn:
if pb: pb.setValue(2)
for line in recs:
- if len(line) < 7:
- continue
- status = line[0]
- fname = line[7:]
- self.fileStatus[ fname ] = line[0:6]
+ # a 7th column was added in svn 1.6, see http://subversion.tigris.org/svn_1.6_releasenotes.html#svn-status
+ if version[0]>1 or version[0]==1 and version[1]>=6:
+ if len(line) < 8:
+ continue
+ status = line[0]
+ fname = line[8:]
+ self.fileStatus[ fname ] = line[0:7]
+ else:
+ if len(line) < 7:
+ continue
+ status = line[0]
+ fname = line[7:]
+ self.fileStatus[ fname ] = line[0:6]
if status == 'M': # modified
itemList.append('M ' + fname)
|