# HG changeset patch
# User Trey Roessig
# Date 1241029346 25200
# Node ID b73e08c25108414e384cc2ed80008bd38a09c382
# Parent  028b6666aa594c6a51bc7d51f66a14192a949c5b
commit: add message format check

checks for formatting on commit

diff -r 028b6666aa59 -r b73e08c25108 hggtk/commit.py
--- a/hggtk/commit.py   Wed Apr 29 10:49:23 2009 -0700
+++ b/hggtk/commit.py   Wed Apr 29 11:22:26 2009 -0700
@@ -539,6 +539,47 @@
                    _('Please enter commit message'), self).run()
             self.text.grab_focus()
             return False
+
+        try:
+            sumlen = int(self.repo.ui.config('tortoisehg', 'summarylen', 0))
+            maxlen = int(self.repo.ui.config('tortoisehg', 'messagewrap', 0))
+        except (TypeError, ValueError):
+            Prompt(_('Error'),
+                   _('Message format configuration error'),
+                   self).run()
+            self._msg_config(None)
+            return
+        
+        lines = buf.get_text(buf.get_start_iter(),
+                             buf.get_end_iter()).splitlines()
+        
+        if sumlen and len(lines[0].rstrip()) > sumlen:
+            resp = Confirm(_('Commit'), [], self,
+                           _('The summary line length of %i is greater than'
+                             ' %i.  Would you like to continue?' %
+                                (len(lines[0].rstrip()), sumlen))).run()
+            if resp != gtk.RESPONSE_YES:
+                return False
+        if sumlen and len(lines) > 1 and len(lines[1].strip()):
+            resp = Confirm(_('Commit'), [], self,
+                           _('The summary line is not followed by a blank'
+                             ' line.  Would you like to continue?')).run()
+            if resp != gtk.RESPONSE_YES:
+                return False
+        if maxlen:
+            start = int(sumlen > 0)
+            tmp = [len(x.rstrip()) > maxlen for x in lines[start:]]
+            errs = [str(x[1]+start+1) for x in zip(tmp, range(len(tmp)))
+                    if x[0]]
+            if errs:
+                resp = Confirm(_('Commit'), [], self,
+                               _('The following lines are over the %i-'
+                                 'character limit: %s.  Would you like'
+                                 ' to continue?' %
+                                    (maxlen, ', '.join(errs)))).run()
+                if resp != gtk.RESPONSE_YES:
+                    return False
+        
         begin, end = buf.get_bounds()
         self.opts['message'] = buf.get_text(begin, end)
         return True

------------------------------------------------------------------------------
Register Now & Save for Velocity, the Web Performance & Operations 
Conference from O'Reilly Media. Velocity features a full day of 
expert-led, hands-on workshops and two days of sessions from industry 
leaders in dedicated Performance & Operations tracks. Use code vel09scf 
and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf
_______________________________________________
Tortoisehg-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop

Reply via email to