Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 0.9, 0.9.1, and 0.9.1.1

archive: prevent to add invalid rev/tag to archive name

Changeset 01a8c9ac2760

Parent 3af90e364f38

by Yuki KODAMA

Changes to one file · Browse files at 01a8c9ac2760 Showing diff from parent 3af90e364f38 Diff from another changeset...

 
44
45
46
 
47
48
49
 
144
145
146
147
148
149
150
 
152
153
154
155
 
 
 
 
 
156
157
158
159
160
161
162
 
163
164
165
166
167
168
 
 
 
 
 
 
 
 
 
 
 
169
170
171
172
173
 
174
175
 
176
177
178
 
44
45
46
47
48
49
50
 
145
146
147
 
148
149
150
 
152
153
154
 
155
156
157
158
159
160
161
162
 
 
 
 
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
 
185
186
187
188
189
190
191
@@ -44,6 +44,7 @@
  return   self.repo = repo   self.set_title(_('Archive - %s') % hglib.get_reponame(repo)) + self.prevtarget = None     # layout table   self.table = table = gtklib.LayoutTable() @@ -144,7 +145,6 @@
  self.update_path()     def update_path(self, path=None): - wdrev = str(self.repo['.'].rev())   def remove_ext(path):   for ext in ('.tar', '.tar.bz2', '.tar.gz', '.zip'):   if path.endswith(ext): @@ -152,27 +152,40 @@
  return path   def remove_rev(path):   model = self.combo.get_model() - for rev in ['_' + rev[0] for rev in model] + ['_' + wdrev,]: + revs = [rev[0] for rev in model] + revs.append(wdrev) + if not self.prevtarget is None: + revs.append(self.prevtarget) + for rev in ['_' + rev for rev in revs]:   if path.endswith(rev):   return path.replace(rev, '')   return path - def add_rev(path): - rev = self.combo.get_active_text() - if rev == WD_PARENT: - rev = wdrev + def add_rev(path, rev):   return '%s_%s' % (path, rev)   def add_ext(path):   select = self.get_selected_archive_type()   if select['type'] != 'files':   path += select['ext']   return path + text = self.combo.get_active_text() + if len(text) == 0: + return + wdrev = str(self.repo['.'].rev()) + if text == WD_PARENT: + text = wdrev + else: + try: + self.repo[text] + except (hglib.RepoError, hglib.LookupError): + return   if path is None:   path = self.destentry.get_text()   path = remove_ext(path)   path = remove_rev(path) - path = add_rev(path) + path = add_rev(path, text)   path = add_ext(path)   self.destentry.set_text(path) + self.prevtarget = text     def get_selected_archive_type(self):   """Return a dictionary describing the selected archive type"""