Mercurial > hgsubversion
annotate hgsubversion/hooks/updatemeta.py @ 1573:bb09e8a230d6 1.9.2
wrappers: fix old versions of hg without breaking 4.6
Whoops.
author | Augie Fackler <raf@durin42.com> |
---|---|
date | Mon, 28 May 2018 13:37:15 -0400 |
parents | 92bd7b3678ea |
children |
rev | line source |
---|---|
919
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
1 # Mercurial hook to update/rebuild svn metadata if there are svn changes in |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
2 # the incoming changegroup. |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
3 # |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
4 # To install, add the following to your hgrc: |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
5 # [hooks] |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
6 # changegroup = python:hgsubversion.hooks.updatemeta.hook |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
7 |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
8 from mercurial import node |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
9 |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
10 import hgsubversion |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
11 import hgsubversion.util |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
12 import hgsubversion.svncommands |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
13 |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
14 def hook(ui, repo, **kwargs): |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
15 updatemeta = False |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
16 startrev = repo[node.bin(kwargs["node"])].rev() |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
17 # Check each rev until we find one that contains svn metadata |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
18 for rev in xrange(startrev, len(repo)): |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
19 svnrev = hgsubversion.util.getsvnrev(repo[rev]) |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
20 if svnrev and svnrev.startswith("svn:"): |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
21 updatemeta = True |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
22 break |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
23 |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
24 if updatemeta: |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
25 try: |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
26 hgsubversion.svncommands.updatemeta(ui, repo, args=[]) |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
27 ui.status("Updated svn metadata\n") |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
28 except Exception, e: |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
29 ui.warn("Failed to update svn metadata: %s" % str(e)) |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
30 |
92bd7b3678ea
Add a changegroup hook to update svn metadata
Brad Hall <bhall@fb.com>
parents:
diff
changeset
|
31 return False |