Index: gcl.py |
=================================================================== |
--- gcl.py (revision 22629) |
+++ gcl.py (working copy) |
@@ -306,6 +306,10 @@ |
"""Returns the local repository checkout root directory.""" |
return self._local_root |
+ def Exists(self): |
+ """Returns True if this change already exists (i.e., is not new).""" |
+ return (self.issue or self.description or self._files) |
+ |
def _NonDeletedFileList(self): |
"""Returns a list of files in this change, not including deleted files.""" |
return [file[1] for file in self.GetFiles() |
@@ -978,22 +982,27 @@ |
other_files = GetFilesNotInCL() |
- #Edited files will have a letter for the first character in a string. |
- #This regex looks for the presence of that character. |
+ # Edited files (as opposed to files with only changed properties) will have |
+ # a letter for the first character in the status string. |
file_re = re.compile(r"^[a-z].+\Z", re.IGNORECASE) |
- affected_files = filter(lambda x: file_re.match(x[0]), other_files) |
- unaffected_files = filter(lambda x: not file_re.match(x[0]), other_files) |
+ affected_files = [x for x in other_files if file_re.match(x[0])] |
M-A Ruel
2009/08/07 01:01:30
Hey, you are fixing my abuse of filter()!
|
+ unaffected_files = [x for x in other_files if not file_re.match(x[0])] |
separator1 = ("\n---All lines above this line become the description.\n" |
"---Repository Root: " + change_info.GetLocalRoot() + "\n" |
"---Paths in this changelist (" + change_info.name + "):\n") |
separator2 = "\n\n---Paths modified but not in any changelist:\n\n" |
text = (description + separator1 + '\n' + |
- '\n'.join([f[0] + f[1] for f in change_info.GetFiles()]) + |
- separator2 + |
- '\n'.join([f[0] + f[1] for f in affected_files]) + '\n' + |
- '\n'.join([f[0] + f[1] for f in unaffected_files]) + '\n') |
+ '\n'.join([f[0] + f[1] for f in change_info.GetFiles()])) |
+ if change_info.Exists(): |
+ text += (separator2 + |
+ '\n'.join([f[0] + f[1] for f in affected_files]) + '\n') |
+ else: |
+ text += ('\n'.join([f[0] + f[1] for f in affected_files]) + '\n' + |
+ separator2) |
+ text += '\n'.join([f[0] + f[1] for f in unaffected_files]) + '\n' |
+ |
handle, filename = tempfile.mkstemp(text=True) |
os.write(handle, text) |
os.close(handle) |