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 |
