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