chiark / gitweb /
Merge commit 'kha/safe'
authorCatalin Marinas <catalin.marinas@arm.com>
Wed, 2 Sep 2009 08:48:38 +0000 (09:48 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Wed, 2 Sep 2009 08:48:38 +0000 (09:48 +0100)
stgit/commands/squash.py
stgit/config.py
stgit/utils.py

index d0be46674b3f50c2421e85557f33b7b02f7d6e9f..96b8da2dabeb55429c9f5783e13e2549d9c28299 100644 (file)
@@ -68,14 +68,17 @@ def _squash_patches(trans, patches, msg, save_template):
             return None
         cd = cd.set_tree(tree)
     if msg == None:
-        msg = '\n\n'.join('%s\n\n%s' % (pn.ljust(70, '-'),
-                                        trans.patches[pn].data.message)
-                          for pn in patches)
+        msg = utils.append_comment(
+            trans.patches[patches[0]].data.message,
+            '\n\n'.join('%s\n\n%s' % (pn.ljust(70, '-'),
+                                      trans.patches[pn].data.message)
+                        for pn in patches[1:]))
         if save_template:
             save_template(msg)
             raise SaveTemplateDone()
         else:
-            msg = utils.edit_string(msg, '.stgit-squash.txt').strip()
+            msg = utils.edit_string(msg, '.stgit-squash.txt')
+    msg = utils.strip_comment(msg).strip()
     cd = cd.set_message(msg)
 
     return cd
index 6f84b10d80b468fe537ddcf19026a98e5e4e8210..bfb117df044d291984ddee2e1ab867d27eea5fe0 100644 (file)
@@ -57,7 +57,7 @@ class GitConfig:
         self.load()
         if name not in self.__cache:
             self.__cache[name] = [self.__defaults.get(name, None)]
-        return self.__cache[name][0]
+        return self.__cache[name][-1]
 
     def getall(self, name):
         self.load()
index 1fa96c252f3af6646229a931668621e4e44524f6..5c0e15937edf9b008976279f4fcfcff6cf22598a 100644 (file)
@@ -200,6 +200,16 @@ def edit_string(s, filename):
     os.remove(filename)
     return s
 
+def append_comment(s, comment, separator = '---'):
+    return ('%s\n\n%s\nEverything following the line with "%s" will be'
+            ' ignored\n\n%s' % (s, separator, separator, comment))
+
+def strip_comment(s, separator = '---'):
+    try:
+        return s[:s.index('\n%s\n' % separator)]
+    except ValueError:
+        return s
+
 def find_patch_name(patchname, unacceptable):
     """Find a patch name which is acceptable."""
     if unacceptable(patchname):