View | Details | Raw Unified | Return to bug 238535
Collapse All | Expand All

(-)b/devel/py-hgsubversion/Makefile (+1 lines)
Lines 3-8 Link Here
3
3
4
PORTNAME=	hgsubversion
4
PORTNAME=	hgsubversion
5
PORTVERSION=	1.9.3
5
PORTVERSION=	1.9.3
6
PORTREVISION=	1
6
CATEGORIES=	devel python
7
CATEGORIES=	devel python
7
MASTER_SITES=	CHEESESHOP
8
MASTER_SITES=	CHEESESHOP
8
PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
9
PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
(-)b/devel/py-hgsubversion/files/patch-README (+26 lines)
Added Link Here
1
--- README.orig	2013-08-06 21:20:15 UTC
2
+++ README
3
@@ -16,19 +16,17 @@ Installation
4
 ------------
5
 You need to have either have Subversion 1.5 (or later) installed along with
6
 either Subvertpy 0.7.4 (or later) or the Subversion SWIG Python bindings. You
7
-need Mercurial 2.0 or later.
8
+need Mercurial 3.7 or later.
9
 
10
-.. _mercurial: http://selenic.com/repo/hg
11
-.. _mercurial-stable: http://selenic.com/repo/hg-stable
12
-.. _crew: http://hg.intevation.org/mercurial/crew
13
-.. _crew-stable: http://hg.intevation.org/mercurial/crew-stable
14
+.. _mercurial: http://mercurial-scm.org/repo/hg
15
+.. _mercurial-stable: http://mercurial-scm.org/repo/hg-stable
16
 
17
 If you are unfamiliar with installing Mercurial extensions, please see
18
 the UsingExtensions_ page in the Mercurial wiki. Look at the example
19
 for specifying an absolute path near the bottom of the page. You want
20
 to give the path to the top level of your clone of this repository.
21
 
22
-.. _UsingExtensions: http://mercurial.selenic.com/wiki/UsingExtensions
23
+.. _UsingExtensions: http://mercurial-scm.org/wiki/UsingExtensions
24
 
25
 Before using hgsubversion, I *strongly* encourage you to run the
26
 automated tests. Just use nose_ if you have it (or ``easy_install
(-)b/devel/py-hgsubversion/files/patch-hgsubversion_____init____.py (+73 lines)
Added Link Here
1
--- hgsubversion/__init__.py.orig	2018-11-03 03:35:02 UTC
2
+++ hgsubversion/__init__.py
3
@@ -21,12 +21,7 @@ import inspect
4
 import os
5
 
6
 from mercurial import commands
7
-try:
8
-    from mercurial import exchange
9
-    exchange.push  # existed in first iteration of this file
10
-except ImportError:
11
-    # We only *use* the exchange module in hg 3.2+, so this is safe
12
-    pass
13
+from mercurial import exchange
14
 from mercurial import error as hgerror
15
 from mercurial import extensions
16
 from mercurial import help
17
@@ -52,6 +47,7 @@ except (ImportError, AttributeError):
18
         'svn.ra',
19
     }
20
 
21
+from mercurial import discovery
22
 from mercurial import revset
23
 from mercurial import subrepo
24
 
25
@@ -106,26 +102,13 @@ wrapcmds = { # cmd: generic, target, fixdoc, ppopts, o
26
     ]),
27
 }
28
 
29
-try:
30
-    from mercurial import discovery
31
-    def findcommonoutgoing(orig, *args, **opts):
32
-        capable = getattr(args[1], 'capable', lambda x: False)
33
-        if capable('subversion'):
34
-            return wrappers.findcommonoutgoing(*args, **opts)
35
-        else:
36
-            return orig(*args, **opts)
37
-    extensions.wrapfunction(discovery, 'findcommonoutgoing', findcommonoutgoing)
38
-except AttributeError:
39
-    # only need the discovery variant of this code when we drop hg < 1.6
40
-    def findoutgoing(orig, *args, **opts):
41
-        capable = getattr(args[1], 'capable', lambda x: False)
42
-        if capable('subversion'):
43
-            return wrappers.findoutgoing(*args, **opts)
44
-        else:
45
-            return orig(*args, **opts)
46
-    extensions.wrapfunction(discovery, 'findoutgoing', findoutgoing)
47
-except ImportError:
48
-    pass
49
+def findcommonoutgoing(orig, *args, **opts):
50
+    capable = getattr(args[1], 'capable', lambda x: False)
51
+    if capable('subversion'):
52
+        return wrappers.findcommonoutgoing(*args, **opts)
53
+    else:
54
+        return orig(*args, **opts)
55
+extensions.wrapfunction(discovery, 'findcommonoutgoing', findcommonoutgoing)
56
 
57
 def extsetup(ui):
58
     """insert command wrappers for a bunch of commands"""
59
@@ -157,12 +140,8 @@ def extsetup(ui):
60
     except:
61
         pass
62
 
63
-    if not hgutil.safehasattr(localrepo.localrepository, 'push'):
64
-        # Mercurial >= 3.2
65
-        extensions.wrapfunction(exchange, 'push', wrappers.exchangepush)
66
-    if not hgutil.safehasattr(localrepo.localrepository, 'pull'):
67
-        # Mercurial >= 3.2
68
-        extensions.wrapfunction(exchange, 'pull', wrappers.exchangepull)
69
+    extensions.wrapfunction(exchange, 'push', wrappers.exchangepush)
70
+    extensions.wrapfunction(exchange, 'pull', wrappers.exchangepull)
71
 
72
     helpdir = os.path.join(os.path.dirname(__file__), 'help')
73
 
(-)b/devel/py-hgsubversion/files/patch-hgsubversion_compathacks.py (+59 lines)
Added Link Here
1
--- hgsubversion/compathacks.py.orig	2018-05-27 04:28:35 UTC
2
+++ hgsubversion/compathacks.py
3
@@ -3,18 +3,20 @@
4
 import errno
5
 import sys
6
 
7
-from mercurial import util
8
+from mercurial import ui as uimod, util
9
 
10
-def branchset(repo):
11
-    """Return the set of branches present in a repo.
12
+# ui.makeprogress will be dropped after hg-5.1
13
+if util.safehasattr(uimod.ui, 'makeprogress'):
14
+    def progress(ui, topic, pos, item="", unit="", total=None):
15
+        progress = ui.makeprogress(topic, unit, total)
16
+        if pos is not None:
17
+            progress.update(pos, item=item)
18
+        else:
19
+            progress.complete()
20
+else:
21
+    def progress(ui, topic, pos, item="", unit="", total=None):
22
+        ui.progress(topic, pos, item="", unit="", total=None)
23
 
24
-    Works around branchtags() vanishing between 2.8 and 2.9.
25
-    """
26
-    try:
27
-        return set(repo.branchmap())
28
-    except AttributeError:
29
-        return set(repo.branchtags())
30
-
31
 def pickle_load(f):
32
     import cPickle as pickle
33
     f.seek(0)
34
@@ -24,6 +26,7 @@ def makememfilectx(repo, memctx, path, data, islink, i
35
     """Return a memfilectx
36
 
37
     Works around API change by 8a0cac20a1ad (first in 4.5).
38
+    and also API change by 550a172a603b9e (first in 5.0)
39
     """
40
     from mercurial import context
41
     try:
42
@@ -31,8 +34,15 @@ def makememfilectx(repo, memctx, path, data, islink, i
43
                                   islink=islink, isexec=isexec, copied=copied,
44
                                   changectx=memctx)
45
     except TypeError:
46
-        return context.memfilectx(repo=repo, path=path, data=data,
47
-                                  islink=islink, isexec=isexec, copied=copied)
48
+        try:
49
+            return context.memfilectx(repo=repo, path=path, data=data,
50
+                                      islink=islink, isexec=isexec,
51
+                                      copied=copied)
52
+        except TypeError:
53
+            return context.memfilectx(repo=repo, changectx=memctx,
54
+                                      path=path, data=data,
55
+                                      islink=islink, isexec=isexec,
56
+                                      copysource=copied)
57
 
58
 def filectxfn_deleted(memctx, path):
59
     """
(-)b/devel/py-hgsubversion/files/patch-hgsubversion_replay.py (+11 lines)
Added Link Here
1
--- hgsubversion/replay.py.orig	2018-04-20 21:33:54 UTC
2
+++ hgsubversion/replay.py
3
@@ -140,7 +140,7 @@ def _convert_rev(ui, meta, svn, r, tbdelta, firstrun):
4
             tag = meta.get_path_tag(meta.remotename(branch))
5
             if (tag and tag not in meta.tags
6
                 and branch not in meta.branches
7
-                and branch not in compathacks.branchset(meta.repo)
8
+                and branch not in meta.repo.branchmap()
9
                 and not files):
10
                 continue
11
 
(-)b/devel/py-hgsubversion/files/patch-hgsubversion_stupid.py (+11 lines)
Added Link Here
1
--- hgsubversion/stupid.py.orig	2018-04-20 21:33:54 UTC
2
+++ hgsubversion/stupid.py
3
@@ -759,7 +759,7 @@ def convert_rev(ui, meta, svn, r, tbdelta, firstrun):
4
             # svnmeta.committag(), we can skip the whole branch for now
5
             if (tag and tag not in meta.tags and
6
                 b not in meta.branches
7
-                and b not in compathacks.branchset(meta.repo)
8
+                and b not in meta.repo.branchmap()
9
                 and not files_touched):
10
                 continue
11
 
(-)b/devel/py-hgsubversion/files/patch-hgsubversion_svncommands.py (+34 lines)
Added Link Here
1
--- hgsubversion/svncommands.py.orig	2018-05-27 04:29:06 UTC
2
+++ hgsubversion/svncommands.py
3
@@ -108,7 +108,7 @@ def _buildmeta(ui, repo, args, partial=False, skipuuid
4
     # of the repository instead. During this traversal, we find all converted
5
     # changesets that close a branch, and store their first parent
6
     for ctx in util.get_contexts(repo, startrev):
7
-        ui.progress('prepare', ctx.rev() - startrev, total=numrevs)
8
+        compathacks.progress(ui, 'prepare', ctx.rev() - startrev, total=numrevs)
9
 
10
         convinfo = util.getsvnrev(ctx, None)
11
         if not convinfo:
12
@@ -132,11 +132,11 @@ def _buildmeta(ui, repo, args, partial=False, skipuuid
13
             else:
14
                 closed.add(parentctx.rev())
15
 
16
-    ui.progress('prepare', None, total=numrevs)
17
+    compathacks.progress(ui, 'prepare', None, total=numrevs)
18
 
19
     revmapbuf = []
20
     for ctx in util.get_contexts(repo, startrev):
21
-        ui.progress('rebuild', ctx.rev() - startrev, total=numrevs)
22
+        compathacks.progress(ui, 'rebuild', ctx.rev() - startrev, total=numrevs)
23
 
24
         convinfo = util.getsvnrev(ctx, None)
25
         if not convinfo:
26
@@ -267,7 +267,7 @@ def _buildmeta(ui, repo, args, partial=False, skipuuid
27
                                   revision)
28
 
29
     revmap.batchset(revmapbuf, youngest)
30
-    ui.progress('rebuild', None, total=numrevs)
31
+    compathacks.progress(ui, 'rebuild', None, total=numrevs)
32
 
33
     # save off branch info
34
     util.dump(branchinfo, meta.branch_info_file)
(-)b/devel/py-hgsubversion/files/patch-hgsubversion_svnrepo.py (+22 lines)
Added Link Here
1
--- hgsubversion/svnrepo.py.orig	2018-10-26 02:54:41 UTC
2
+++ hgsubversion/svnrepo.py
3
@@ -100,19 +100,6 @@ def generate_repo_class(ui, repo):
4
                 self.pushkey('phases', self[hash].hex(), str(phases.draft), str(phases.public))
5
             return hash
6
 
7
-        if hgutil.safehasattr(localrepo.localrepository, 'push'):
8
-            # Mercurial < 3.2
9
-            # TODO use newbranch to allow branch creation in Subversion?
10
-            @remotesvn
11
-            def push(self, remote, force=False, revs=None, newbranch=None):
12
-                return wrappers.push(self, remote, force, revs)
13
-
14
-        if hgutil.safehasattr(localrepo.localrepository, 'pull'):
15
-            # Mercurial < 3.2
16
-            @remotesvn
17
-            def pull(self, remote, heads=[], force=False):
18
-                return wrappers.pull(self, remote, heads, force)
19
-
20
         @remotesvn
21
         def findoutgoing(self, remote, base=None, heads=None, force=False):
22
             return wrappers.findoutgoing(self, remote, heads, force)
(-)b/devel/py-hgsubversion/files/patch-hgsubversion_util.py (+15 lines)
Added Link Here
1
--- hgsubversion/util.py.orig	2018-10-26 02:54:41 UTC
2
+++ hgsubversion/util.py
3
@@ -249,6 +249,12 @@ class PrefixMatch(object):
4
     def prefix(self):
5
         return False
6
 
7
+    def visitdir(self, dir):
8
+        return True
9
+
10
+    def visitchildrenset(self, dir):
11
+        return 'this'
12
+
13
 def outgoing_revisions(repo, reverse_map, sourcerev):
14
     """Given a repo and an hg_editor, determines outgoing revisions for the
15
     current working copy state.
(-)b/devel/py-hgsubversion/files/patch-hgsubversion_verify.py (+78 lines)
Added Link Here
1
--- hgsubversion/verify.py.orig	2018-03-24 21:03:02 UTC
2
+++ hgsubversion/verify.py
3
@@ -4,6 +4,7 @@ import posixpath
4
 from mercurial import error
5
 from mercurial import worker
6
 
7
+import compathacks
8
 import svnwrap
9
 import svnrepo
10
 import util
11
@@ -94,7 +95,7 @@ def verify(ui, repo, args=None, **opts):
12
         w = worker.worker(repo.ui, perarg, verifydata, (), tuple(svndata))
13
         i = 0
14
         for _, t in w:
15
-            ui.progress('verify', i, total=len(hgfiles))
16
+            compathacks.progress(ui, 'verify', i, total=len(hgfiles))
17
             i += 1
18
             fn, ok = t.split('\0', 2)
19
             if not bool(ok):
20
@@ -110,7 +111,7 @@ def verify(ui, repo, args=None, **opts):
21
                 ui.write('missing file: %s\n' % f)
22
             result = 1
23
 
24
-        ui.progress('verify', None, total=len(hgfiles))
25
+        compathacks.progress(ui, 'verify', None, total=len(hgfiles))
26
 
27
     else:
28
         class VerifyEditor(svnwrap.Editor):
29
@@ -152,7 +153,7 @@ def verify(ui, repo, args=None, **opts):
30
                     self.props = None
31
 
32
                 self.seen += 1
33
-                self.ui.progress('verify', self.seen, total=self.total)
34
+                compathacks.progress(self.ui, 'verify', self.seen, total=self.total)
35
 
36
             def open_file(self, path, base_revnum):
37
                 raise NotImplementedError()
38
@@ -175,19 +176,19 @@ def verify(ui, repo, args=None, **opts):
39
 
40
                     if 'svn:executable' in self.props:
41
                         if fctx.flags() != 'x':
42
-                            self.ui.warn('wrong flags for: %s\n' % self.file)
43
+                            self.ui.write('wrong flags for: %s\n' % self.file)
44
                             self.failed = True
45
                     elif 'svn:special' in self.props:
46
                         hgdata = 'link ' + hgdata
47
                         if fctx.flags() != 'l':
48
-                            self.ui.warn('wrong flags for: %s\n' % self.file)
49
+                            self.ui.write('wrong flags for: %s\n' % self.file)
50
                             self.failed = True
51
                     elif fctx.flags():
52
-                        self.ui.warn('wrong flags for: %s\n' % self.file)
53
+                        self.ui.write('wrong flags for: %s\n' % self.file)
54
                         self.failed = True
55
 
56
                     if hgdata != svndata:
57
-                        self.ui.warn('difference in: %s\n' % self.file)
58
+                        self.ui.write('difference in: %s\n' % self.file)
59
                         diff_file(self.file, svndata)
60
                         self.failed = True
61
 
62
@@ -211,13 +212,13 @@ def verify(ui, repo, args=None, **opts):
63
                 raise NotImplementedError()
64
 
65
             def check(self):
66
-                self.ui.progress('verify', None, total=self.total)
67
+                compathacks.progress(self.ui, 'verify', None, total=self.total)
68
 
69
                 for f in self.unexpected:
70
-                    self.ui.warn('unexpected file: %s\n' % f)
71
+                    self.ui.write('unexpected file: %s\n' % f)
72
                     self.failed = True
73
                 for f in self.missing:
74
-                    self.ui.warn('missing file: %s\n' % f)
75
+                    self.ui.write('missing file: %s\n' % f)
76
                     self.failed = True
77
                 return not self.failed
78
 
(-)b/devel/py-hgsubversion/files/patch-hgsubversion_wrappers.py (+29 lines)
Added Link Here
1
--- hgsubversion/wrappers.py.orig	2018-08-07 01:10:48 UTC
2
+++ hgsubversion/wrappers.py
3
@@ -27,6 +27,7 @@ except ImportError:
4
     logcmdutil = None
5
 from mercurial import scmutil
6
 
7
+import compathacks
8
 import replay
9
 import pushmod
10
 import stupid as stupidmod
11
@@ -502,7 +503,8 @@ def pull(repo, source, heads=[], force=False, meta=Non
12
                             w = hgutil.termwidth()
13
                         bits = (r.revnum, r.author, msg)
14
                         ui.status(('[r%d] %s: %s' % bits)[:w] + '\n')
15
-                        ui.progress('pull', r.revnum - start, total=total)
16
+                        compathacks.progress(ui, 'pull', r.revnum - start,
17
+                                             total=total)
18
 
19
                         meta.save_tbdelta(tbdelta)
20
                         close = pullfuns[have_replay](ui, meta, svn, r, tbdelta,
21
@@ -539,7 +541,7 @@ def pull(repo, source, heads=[], force=False, meta=Non
22
             lock.release()
23
     finally:
24
         if total is not None:
25
-            ui.progress('pull', None, total=total)
26
+            compathacks.progress(ui, 'pull', None, total=total)
27
         util.swap_out_encoding(old_encoding)
28
 
29
     if lastpulled is not None:
(-)b/devel/py-hgsubversion/files/patch-tests_test__fetch__branches.py (+11 lines)
Added Link Here
1
--- tests/test_fetch_branches.py.orig	2018-05-26 21:38:24 UTC
2
+++ tests/test_fetch_branches.py
3
@@ -100,7 +100,7 @@ class TestFetchBranches(test_util.TestBase):
4
                           'unorderedbranch.svndump', 'NaN')
5
         repo = self._load_fixture_and_fetch_with_anchor(
6
             'unorderedbranch.svndump', '4')
7
-        self.assertTrue('c' not in compathacks.branchset(repo))
8
+        self.assertTrue('c' not in set(repo.branchmap()))
9
 
10
     def test_branches_weird_moves(self):
11
         repo = self._load_fixture_and_fetch('renamedproject.svndump',
(-)b/devel/py-hgsubversion/files/patch-tests_test__single__dir__clone.py (+38 lines)
Added Link Here
1
--- tests/test_single_dir_clone.py.orig	2018-05-26 21:37:44 UTC
2
+++ tests/test_single_dir_clone.py
3
@@ -21,7 +21,7 @@ class TestSingleDirClone(test_util.TestBase):
4
         repo = self._load_fixture_and_fetch('branch_from_tag.svndump',
5
                                             layout='single',
6
                                             subdir='')
7
-        self.assertEqual(compathacks.branchset(repo),
8
+        self.assertEqual(set(repo.branchmap()),
9
                          set(['default']))
10
         self.assertEqual(sorted(repo['tip'].manifest().keys()),
11
                          ['branches/branch_from_tag/alpha',
12
@@ -36,7 +36,7 @@ class TestSingleDirClone(test_util.TestBase):
13
     def test_auto_detect_single(self):
14
         repo = self._load_fixture_and_fetch('branch_from_tag.svndump',
15
                                             layout='auto')
16
-        self.assertEqual(compathacks.branchset(repo),
17
+        self.assertEqual(set(repo.branchmap()),
18
                          set(['default', 'branch_from_tag']))
19
         oldmanifest = test_util.filtermanifest(revsymbol(repo, 'default').manifest().keys())
20
         # remove standard layout
21
@@ -45,7 +45,7 @@ class TestSingleDirClone(test_util.TestBase):
22
         repo = self._load_fixture_and_fetch('branch_from_tag.svndump',
23
                                             layout='auto',
24
                                             subdir='trunk')
25
-        self.assertEqual(compathacks.branchset(repo), set(['default', ]))
26
+        self.assertEqual(set(repo.branchmap()), set(['default', ]))
27
         self.assertEqual(revsymbol(repo, 'default').manifest().keys(), oldmanifest)
28
 
29
     def test_clone_subdir_is_file_prefix(self):
30
@@ -53,7 +53,7 @@ class TestSingleDirClone(test_util.TestBase):
31
         repo = self._load_fixture_and_fetch(FIXTURE,
32
                                             layout='single',
33
                                             subdir=test_util.subdir[FIXTURE])
34
-        self.assertEqual(compathacks.branchset(repo), set(['default']))
35
+        self.assertEqual(set(repo.branchmap()), set(['default']))
36
         self.assertEqual(repo['tip'].manifest().keys(), ['flaf.txt'])
37
 
38
     def test_externals_single(self):
(-)b/devel/py-hgsubversion/files/patch-tests_test__single__dir__push.py (+11 lines)
Added Link Here
1
--- tests/test_single_dir_push.py.orig	2018-05-26 21:37:44 UTC
2
+++ tests/test_single_dir_push.py
3
@@ -163,7 +163,7 @@ class TestSingleDirPush(test_util.TestBase):
4
         self.pushrevisions()
5
         repo = self.repo # repo is outdated after the rebase happens, refresh
6
         self.assertTrue('foo' in test_util.svnls(repo_path, ''))
7
-        self.assertEqual(compathacks.branchset(repo), set(['default']))
8
+        self.assertEqual(set(repo.branchmap()), set(['default']))
9
         # Have to cross to another branch head, so hg.update doesn't work
10
         commands.update(self.ui(),
11
                         self.repo,
(-)b/devel/py-hgsubversion/files/patch-tests_test__tags.py (+11 lines)
Added Link Here
1
--- tests/test_tags.py.orig	2018-11-03 00:13:42 UTC
2
+++ tests/test_tags.py
3
@@ -51,7 +51,7 @@ rename a tag
4
 
5
     def test_branch_from_tag(self):
6
         repo = self._load_fixture_and_fetch('branch_from_tag.svndump')
7
-        self.assert_('branch_from_tag' in compathacks.branchset(repo))
8
+        self.assert_('branch_from_tag' in repo.branchmap())
9
         self.assertEqual(repo[1], revsymbol(repo, 'tag_r3'))
10
         self.assertEqual(revsymbol(repo, 'branch_from_tag').parents()[0],
11
                          revsymbol(repo, 'copied_tag'))

Return to bug 238535