[PATCH STABLE] automation: push changes affecting .hgtags

Gregory Szorc gregory.szorc at gmail.com
Sat Aug 3 15:14:20 EDT 2019


# HG changeset patch
# User Gregory Szorc <gregory.szorc at gmail.com>
# Date 1564859631 25200
#      Sat Aug 03 12:13:51 2019 -0700
# Branch stable
# Node ID fcf8e489d6a667bfd2fcf066b545e52519309ee1
# Parent  e0cf09bc35ef6d7e8554e5be98441e995c856759
automation: push changes affecting .hgtags

When I went to build the 5.1 tag using the in-repo automation, the
automatic version calculation failed to deduce the clean 5.1 version
string because we had only pushed the changeset corresponding to the 5.1
tag and not the changeset containing the 5.1 tag. So from the
perspective of the remote repo, the 5.1 tag didn't exist yet and
automatic version deduction failed.

This commit changes the `hg push` to also push all changesets affecting
the .hgtags file, ensuring the remote has up-to-date tags information.

I tested this by creating a local draft changeset with a dummy tag
value on a different DAG head and instructed the automation to build
a revision that didn't have this change to .hgtags. The tag was
successfully pushed and the built package had a version number
incorporating that tag.

Sending this to stable so the 5.1.1 automation hopefully "just works."

diff --git a/contrib/automation/hgautomation/linux.py b/contrib/automation/hgautomation/linux.py
--- a/contrib/automation/hgautomation/linux.py
+++ b/contrib/automation/hgautomation/linux.py
@@ -485,7 +485,9 @@ def synchronize_hg(source_path: pathlib.
             'python2.7', str(hg_bin),
             '--config', 'ui.ssh=ssh -F %s' % ssh_config,
             '--config', 'ui.remotecmd=/hgdev/venv-bootstrap/bin/hg',
-            'push', '-f', '-r', full_revision,
+            # Also ensure .hgtags changes are present so auto version
+            # calculation works.
+            'push', '-f', '-r', full_revision, '-r', 'file(.hgtags)',
             'ssh://%s//hgwork/src' % public_ip,
         ]
 
diff --git a/contrib/automation/hgautomation/windows.py b/contrib/automation/hgautomation/windows.py
--- a/contrib/automation/hgautomation/windows.py
+++ b/contrib/automation/hgautomation/windows.py
@@ -176,7 +176,9 @@ def synchronize_hg(hg_repo: pathlib.Path
             'python2.7', hg_bin,
             '--config', 'ui.ssh=ssh -F %s' % ssh_config,
             '--config', 'ui.remotecmd=c:/hgdev/venv-bootstrap/Scripts/hg.exe',
-            'push', '-f', '-r', full_revision,
+            # Also ensure .hgtags changes are present so auto version
+            # calculation works.
+            'push', '-f', '-r', full_revision, '-r', 'file(.hgtags)',
             'ssh://%s/c:/hgdev/src' % public_ip,
         ]
 


More information about the Mercurial-devel mailing list