changeset 93c6317af258 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=93c6317af258
description:
        Merged with Nate's commit

diffstat:

 util/hgfilesize.py |  32 ++++++++++++++++++++++++++++++++
 1 files changed, 32 insertions(+), 0 deletions(-)

diffs (36 lines):

diff -r 15d4da9d2042 -r 93c6317af258 util/hgfilesize.py
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/util/hgfilesize.py        Sat Jan 07 07:40:44 2012 -0600
@@ -0,0 +1,32 @@
+from mercurial import context
+from mercurial.i18n import _
+
+'''
+[extensions]
+hgfilesize=~/m5/incoming/util/hgfilesize.py
+
+[hooks]
+pretxncommit = python:hgfilesize.limit_file_size
+pretxnchangegroup = python:hgfilesize.limit_file_size
+
+[limit_file_size]
+maximum_file_size = 200000
+'''
+
+def limit_file_size(ui, repo, node=None, **kwargs):
+    '''forbid files over a given size'''
+
+    # default limit is 1 MB
+    limit = int(ui.config('limit_file_size', 'maximum_file_size', 1024*1024))
+    existing_tip = context.changectx(repo, node).rev()
+    new_tip = context.changectx(repo, 'tip').rev()
+    for rev in xrange(existing_tip, new_tip + 1):
+        ctx = context.changectx(repo, rev)
+        for f in ctx.files():
+            fctx = ctx.filectx(f)
+            if fctx.size() > limit:
+                ui.write(_('file %s of %s is too large: %d > %d\n') % \
+                             (f, ctx, fctx.size(), limit))
+                return True # This is invalid
+
+    return False # Things are OK.
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to