59 os.chdir(projectPath) |
59 os.chdir(projectPath) |
60 try: |
60 try: |
61 entries = self.client.info2(fn, recurse = False) |
61 entries = self.client.info2(fn, recurse = False) |
62 infoStr = "<table>" |
62 infoStr = "<table>" |
63 for path, info in entries: |
63 for path, info in entries: |
64 infoStr += self.trUtf8(\ |
64 infoStr += self.trUtf8( |
65 "<tr><td><b>Path (relative to project):</b></td><td>{0}</td></tr>")\ |
65 "<tr><td><b>Path (relative to project):</b></td><td>{0}</td></tr>")\ |
66 .format(path) |
66 .format(path) |
67 if info['URL']: |
67 if info['URL']: |
68 infoStr += self.trUtf8(\ |
68 infoStr += self.trUtf8( |
69 "<tr><td><b>Url:</b></td><td>{0}</td></tr>")\ |
69 "<tr><td><b>Url:</b></td><td>{0}</td></tr>")\ |
70 .format(info['URL']) |
70 .format(info['URL']) |
71 if info['rev']: |
71 if info['rev']: |
72 infoStr += self.trUtf8(\ |
72 infoStr += self.trUtf8( |
73 "<tr><td><b>Revision:</b></td><td>{0}</td></tr>")\ |
73 "<tr><td><b>Revision:</b></td><td>{0}</td></tr>")\ |
74 .format(info['rev'].number) |
74 .format(info['rev'].number) |
75 if info['repos_root_URL']: |
75 if info['repos_root_URL']: |
76 infoStr += self.trUtf8(\ |
76 infoStr += self.trUtf8( |
77 "<tr><td><b>Repository root URL:</b></td><td>{0}</td></tr>")\ |
77 "<tr><td><b>Repository root URL:</b></td><td>{0}</td></tr>")\ |
78 .format(info['repos_root_URL']) |
78 .format(info['repos_root_URL']) |
79 if info['repos_UUID']: |
79 if info['repos_UUID']: |
80 infoStr += self.trUtf8(\ |
80 infoStr += self.trUtf8( |
81 "<tr><td><b>Repository UUID:</b></td><td>{0}</td></tr>")\ |
81 "<tr><td><b>Repository UUID:</b></td><td>{0}</td></tr>")\ |
82 .format(info['repos_UUID']) |
82 .format(info['repos_UUID']) |
83 if info['last_changed_author']: |
83 if info['last_changed_author']: |
84 infoStr += self.trUtf8(\ |
84 infoStr += self.trUtf8( |
85 "<tr><td><b>Last changed author:</b></td><td>{0}</td></tr>")\ |
85 "<tr><td><b>Last changed author:</b></td><td>{0}</td></tr>")\ |
86 .format(info['last_changed_author']) |
86 .format(info['last_changed_author']) |
87 if info['last_changed_date']: |
87 if info['last_changed_date']: |
88 infoStr += self.trUtf8(\ |
88 infoStr += self.trUtf8( |
89 "<tr><td><b>Last Changed Date:</b></td><td>{0}</td></tr>")\ |
89 "<tr><td><b>Last Changed Date:</b></td><td>{0}</td></tr>")\ |
90 .format(formatTime(info['last_changed_date'])) |
90 .format(formatTime(info['last_changed_date'])) |
91 if info['last_changed_rev'] and \ |
91 if info['last_changed_rev'] and \ |
92 info['last_changed_rev'].kind == pysvn.opt_revision_kind.number: |
92 info['last_changed_rev'].kind == pysvn.opt_revision_kind.number: |
93 infoStr += self.trUtf8(\ |
93 infoStr += self.trUtf8( |
94 "<tr><td><b>Last changed revision:</b></td><td>{0}</td></tr>")\ |
94 "<tr><td><b>Last changed revision:</b></td><td>{0}</td></tr>")\ |
95 .format(info['last_changed_rev'].number) |
95 .format(info['last_changed_rev'].number) |
96 if info['kind']: |
96 if info['kind']: |
97 if info['kind'] == pysvn.node_kind.file: |
97 if info['kind'] == pysvn.node_kind.file: |
98 nodeKind = self.trUtf8("file") |
98 nodeKind = self.trUtf8("file") |
100 nodeKind = self.trUtf8("directory") |
100 nodeKind = self.trUtf8("directory") |
101 elif info['kind'] == pysvn.node_kind.none: |
101 elif info['kind'] == pysvn.node_kind.none: |
102 nodeKind = self.trUtf8("none") |
102 nodeKind = self.trUtf8("none") |
103 else: |
103 else: |
104 nodeKind = self.trUtf8("unknown") |
104 nodeKind = self.trUtf8("unknown") |
105 infoStr += self.trUtf8(\ |
105 infoStr += self.trUtf8( |
106 "<tr><td><b>Node kind:</b></td><td>{0}</td></tr>")\ |
106 "<tr><td><b>Node kind:</b></td><td>{0}</td></tr>")\ |
107 .format(nodeKind) |
107 .format(nodeKind) |
108 if info['lock']: |
108 if info['lock']: |
109 lockInfo = info['lock'] |
109 lockInfo = info['lock'] |
110 infoStr += self.trUtf8(\ |
110 infoStr += self.trUtf8( |
111 "<tr><td><b>Lock Owner:</b></td><td>{0}</td></tr>")\ |
111 "<tr><td><b>Lock Owner:</b></td><td>{0}</td></tr>")\ |
112 .format(lockInfo['owner']) |
112 .format(lockInfo['owner']) |
113 infoStr += self.trUtf8(\ |
113 infoStr += self.trUtf8( |
114 "<tr><td><b>Lock Creation Date:</b></td><td>{0}</td></tr>")\ |
114 "<tr><td><b>Lock Creation Date:</b></td><td>{0}</td></tr>")\ |
115 .format(formatTime(lockInfo['creation_date'])) |
115 .format(formatTime(lockInfo['creation_date'])) |
116 if lockInfo['expiration_date'] is not None: |
116 if lockInfo['expiration_date'] is not None: |
117 infoStr += \ |
117 infoStr += \ |
118 self.trUtf8(\ |
118 self.trUtf8( |
119 "<tr><td><b>Lock Expiration Date:</b></td><td>{0}</td></tr>")\ |
119 "<tr><td><b>Lock Expiration Date:</b></td><td>{0}</td></tr>")\ |
120 .format(formatTime(lockInfo['expiration_date'])) |
120 .format(formatTime(lockInfo['expiration_date'])) |
121 infoStr += self.trUtf8(\ |
121 infoStr += self.trUtf8( |
122 "<tr><td><b>Lock Token:</b></td><td>{0}</td></tr>")\ |
122 "<tr><td><b>Lock Token:</b></td><td>{0}</td></tr>")\ |
123 .format(lockInfo['token']) |
123 .format(lockInfo['token']) |
124 infoStr += self.trUtf8(\ |
124 infoStr += self.trUtf8( |
125 "<tr><td><b>Lock Comment:</b></td><td>{0}</td></tr>")\ |
125 "<tr><td><b>Lock Comment:</b></td><td>{0}</td></tr>")\ |
126 .format(lockInfo['comment']) |
126 .format(lockInfo['comment']) |
127 if info['wc_info']: |
127 if info['wc_info']: |
128 wcInfo = info['wc_info'] |
128 wcInfo = info['wc_info'] |
129 if wcInfo['schedule']: |
129 if wcInfo['schedule']: |
133 schedule = self.trUtf8("add") |
133 schedule = self.trUtf8("add") |
134 elif wcInfo['schedule'] == pysvn.wc_schedule.delete: |
134 elif wcInfo['schedule'] == pysvn.wc_schedule.delete: |
135 schedule = self.trUtf8("delete") |
135 schedule = self.trUtf8("delete") |
136 elif wcInfo['schedule'] == pysvn.wc_schedule.replace: |
136 elif wcInfo['schedule'] == pysvn.wc_schedule.replace: |
137 schedule = self.trUtf8("replace") |
137 schedule = self.trUtf8("replace") |
138 infoStr += self.trUtf8(\ |
138 infoStr += self.trUtf8( |
139 "<tr><td><b>Schedule:</b></td><td>{0}</td></tr>")\ |
139 "<tr><td><b>Schedule:</b></td><td>{0}</td></tr>")\ |
140 .format(schedule) |
140 .format(schedule) |
141 if wcInfo['copyfrom_url']: |
141 if wcInfo['copyfrom_url']: |
142 infoStr += self.trUtf8(\ |
142 infoStr += self.trUtf8( |
143 "<tr><td><b>Copied From URL:</b></td><td>{0}</td></tr>")\ |
143 "<tr><td><b>Copied From URL:</b></td><td>{0}</td></tr>")\ |
144 .format(wcInfo['copyfrom_url']) |
144 .format(wcInfo['copyfrom_url']) |
145 infoStr += self.trUtf8(\ |
145 infoStr += self.trUtf8( |
146 "<tr><td><b>Copied From Rev:</b></td><td>{0}</td></tr>")\ |
146 "<tr><td><b>Copied From Rev:</b></td><td>{0}</td></tr>")\ |
147 .format(wcInfo['copyfrom_rev'].number) |
147 .format(wcInfo['copyfrom_rev'].number) |
148 if wcInfo['text_time']: |
148 if wcInfo['text_time']: |
149 infoStr += self.trUtf8(\ |
149 infoStr += self.trUtf8( |
150 "<tr><td><b>Text Last Updated:</b></td><td>{0}</td></tr>")\ |
150 "<tr><td><b>Text Last Updated:</b></td><td>{0}</td></tr>")\ |
151 .format(formatTime(wcInfo['text_time'])) |
151 .format(formatTime(wcInfo['text_time'])) |
152 if wcInfo['prop_time']: |
152 if wcInfo['prop_time']: |
153 infoStr += self.trUtf8(\ |
153 infoStr += self.trUtf8( |
154 "<tr><td><b>Properties Last Updated:</b></td><td>{0}</td></tr>")\ |
154 "<tr><td><b>Properties Last Updated:</b></td><td>{0}</td></tr>")\ |
155 .format(formatTime(wcInfo['prop_time'])) |
155 .format(formatTime(wcInfo['prop_time'])) |
156 if wcInfo['checksum']: |
156 if wcInfo['checksum']: |
157 infoStr += self.trUtf8(\ |
157 infoStr += self.trUtf8( |
158 "<tr><td><b>Checksum:</b></td><td>{0}</td></tr>")\ |
158 "<tr><td><b>Checksum:</b></td><td>{0}</td></tr>")\ |
159 .format(wcInfo['checksum']) |
159 .format(wcInfo['checksum']) |
160 infoStr += "</table>" |
160 infoStr += "</table>" |
161 self.infoBrowser.setHtml(infoStr) |
161 self.infoBrowser.setHtml(infoStr) |
162 except pysvn.ClientError as e: |
162 except pysvn.ClientError as e: |