]> git.ipfire.org Git - thirdparty/rsync.git/commitdiff
Some patch-update & vim ft improvements
authorWayne Davison <wayne@opencoder.net>
Sat, 27 Jun 2020 19:06:13 +0000 (12:06 -0700)
committerWayne Davison <wayne@opencoder.net>
Sun, 28 Jun 2020 00:59:04 +0000 (17:59 -0700)
- Stash off some gen files when switching patch branches.
- Set the filetype in "env -S" files that vim can't handle.

.gitignore
packaging/branch-from-patch
packaging/patch-update
packaging/release-rsync
packaging/var-checker

index 7006176576c8583f1eba745da65724e8f793b574..62cf9a545d997021d1adeb04291a11bb6365a23e 100644 (file)
@@ -49,4 +49,5 @@ aclocal.m4
 /testsuite/xattrs-hlink.test
 /patches
 /SaVeDiR
+/.gen-stash
 .deps
index dfd3a29a88c891a73ddc397f60768705805d6ce5..440b5835a100337624f9a74bac973c53e79e8c2d 100755 (executable)
@@ -171,4 +171,4 @@ if __name__ == '__main__':
     args = parser.parse_args()
     main()
 
-# vim: sw=4 et
+# vim: sw=4 et ft=python
index c6b5152738835c6762a7b9066ef89ddea44245df..0970d299d5e0cb720285eb3e7710356c35759e3a 100755 (executable)
@@ -31,6 +31,10 @@ def main():
 
     starting_branch, args.base_branch = check_git_state(args.base_branch, not args.skip_check, args.patches_dir)
 
+    gen_stash(starting_branch)
+    if starting_branch == 'master':
+        cmd_run('md5sum configure.ac >.gen-stash/configure.ac.sum')
+
     master_commit = latest_git_hash(args.base_branch)
 
     if args.gen:
@@ -95,6 +99,8 @@ def main():
         time.sleep(1)
     cmd_chk(['git', 'checkout', starting_branch])
 
+    gen_unstash(starting_branch)
+
 
 def update_patch(patch):
     global last_touch
@@ -115,13 +121,16 @@ def update_patch(patch):
 
     while args.gen and last_touch >= time.time():
         time.sleep(1)
-    s = cmd_run(f"git checkout patch/{args.base_branch}/{patch}".split())
+
+    branch = f"patch/{args.base_branch}/{patch}"
+    s = cmd_run(['git', 'checkout', branch])
     if s.returncode != 0:
         return 0
 
     s = cmd_run(['git', 'merge', based_on])
     ok = s.returncode == 0
     if not ok or args.shell:
+        gen_unstash(branch)
         m = re.search(r'([^/]+)$', parent)
         parent_dir = m[1]
         if not ok:
@@ -138,6 +147,7 @@ def update_patch(patch):
             if is_clean:
                 break
             print(status_txt, end='')
+        gen_stash(branch)
 
     with open(f"{args.patches_dir}/{patch}.diff", 'w', encoding='utf-8') as fh:
         fh.write(description[patch])
@@ -191,6 +201,34 @@ def update_patch(patch):
     return 1
 
 
+# The autoconf cache dir can totally mess up if 2 different *.ac files have the same mtime!
+def gen_stash_prep(branch):
+    if os.path.isdir('autom4te.cache'):
+        shutil.rmtree('autom4te.cache')
+    return '.gen-stash/' + branch.replace('/', '%') + '.tar.gz'
+
+
+def gen_stash(branch):
+    files = 'configure.sh config.h.in Makefile'.split()
+    for fn in files:
+        if not os.path.exists(fn):
+            return
+    if not os.path.isdir('.gen-stash'):
+        os.mkdir('.gen-stash', 0o700)
+    tar_fn = gen_stash_prep(branch)
+    cmd_run(['./prepare-source'])
+    cmd_chk(['tar', 'czf', tar_fn, *files])
+
+
+def gen_unstash(branch):
+    tar_fn = gen_stash_prep(branch)
+    if os.path.exists(tar_fn):
+        cmd_chk(['tar', 'xf', tar_fn])
+    out, rc = cmd_txt_status('md5sum --status -c .gen-stash/configure.ac.sum'.split())
+    if rc:
+        print('*' * 10, "configure.ac differs from master version", '*' * 10)
+
+
 if __name__ == '__main__':
     parser = argparse.ArgumentParser(description="Turn a git branch back into a diff files in the patches dir.", add_help=False)
     parser.add_argument('--branch', '-b', dest='base_branch', metavar='BASE_BRANCH', default='master', help="The branch the patch is based on. Default: master.")
@@ -207,4 +245,4 @@ if __name__ == '__main__':
         args.patches_dir = args.gen
     main()
 
-# vim: sw=4 et
+# vim: sw=4 et ft=python
index 3afa79bd01eff898d783b0b557e7b04092156b1e..2ae5eb4cee478b5d77b20342727674e793fd6b2a 100755 (executable)
@@ -381,4 +381,4 @@ if __name__ == '__main__':
     args = parser.parse_args()
     main()
 
-# vim: sw=4 et
+# vim: sw=4 et ft=python
index e021127c0ac2c4a3d0c077c2e02ae08a645b7dee..fe7491df15be3e622ae319b3c1851cfe357d1873 100755 (executable)
@@ -84,4 +84,4 @@ if __name__ == '__main__':
     args = parser.parse_args()
     main()
 
-# vim: sw=4 et
+# vim: sw=4 et ft=python