forbid-new-submodules: fix triggering failure when only a submodule is committed (without any other file); support --from-ref and --to-ref; fixes #609
diff --git a/testing/util.py b/testing/util.py
index 8e468d6..5043754 100644
--- a/testing/util.py
+++ b/testing/util.py
@@ -1,4 +1,5 @@
 import os.path
+import subprocess
 
 
 TESTING_DIR = os.path.abspath(os.path.dirname(__file__))
@@ -6,3 +7,8 @@
 
 def get_resource_path(path):
     return os.path.join(TESTING_DIR, 'resources', path)
+
+
+def git_commit(*args, **kwargs):
+    cmd = ('git', 'commit', '--no-gpg-sign', '--no-verify', '--no-edit', *args)
+    subprocess.check_call(cmd, **kwargs)