Mercurial > hgsubversion
annotate hgsubversion/svnrepo.py @ 1537:27c4daf50520
svnrepo: use configlist instead of rolling it ourselves
author | Augie Fackler <raf@durin42.com> |
---|---|
date | Wed, 25 Oct 2017 22:57:29 -0400 |
parents | ed7c66b8cea6 |
children | cff81f35b31e |
rev | line source |
---|---|
331
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
328
diff
changeset
|
1 """ |
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
328
diff
changeset
|
2 repository class-based interface for hgsubversion |
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
328
diff
changeset
|
3 |
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
328
diff
changeset
|
4 Copyright (C) 2009, Dan Villiom Podlaski Christiansen <danchr@gmail.com> |
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
328
diff
changeset
|
5 See parent package for licensing. |
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
328
diff
changeset
|
6 |
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
328
diff
changeset
|
7 Internally, Mercurial assumes that every single repository is a localrepository |
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
328
diff
changeset
|
8 subclass: pull() is called on the instance pull *to*, but not the one pulled |
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
328
diff
changeset
|
9 *from*. To work around this, we create two classes: |
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
328
diff
changeset
|
10 |
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
328
diff
changeset
|
11 - svnremoterepo for Subversion repositories, but it doesn't really do anything. |
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
328
diff
changeset
|
12 - svnlocalrepo for local repositories which handles both operations on itself -- |
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
328
diff
changeset
|
13 the local, hgsubversion-enabled clone -- and the remote repository. Decorators |
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
328
diff
changeset
|
14 are used to distinguish and filter these operations from others. |
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
328
diff
changeset
|
15 """ |
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
328
diff
changeset
|
16 |
831
be5bbb2f2d68
svnrepo: kludge to work around hash changes between stupid and replay in hg 1.9
Augie Fackler <durin42@gmail.com>
parents:
805
diff
changeset
|
17 import errno |
be5bbb2f2d68
svnrepo: kludge to work around hash changes between stupid and replay in hg 1.9
Augie Fackler <durin42@gmail.com>
parents:
805
diff
changeset
|
18 |
342
76c833526fbc
Use fallbacks in the wrappers for Subversion support, instead of prefixes.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
337
diff
changeset
|
19 from mercurial import error |
1246
2179747e7fea
push: wrap exchange.push when localrepository.push isn't available
Siddharth Agarwal <sid0@fb.com>
parents:
1171
diff
changeset
|
20 from mercurial import localrepo |
326
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
21 from mercurial import util as hgutil |
914
a103d5211237
svnrepo: handle module/class rename in hg 2.3
Bryan O'Sullivan <bryano@fb.com>
parents:
877
diff
changeset
|
22 |
1519
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
23 peerapi = 0 |
914
a103d5211237
svnrepo: handle module/class rename in hg 2.3
Bryan O'Sullivan <bryano@fb.com>
parents:
877
diff
changeset
|
24 try: |
1519
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
25 try: |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
26 from mercurial.repository import peer as peerrepository |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
27 peerapi = 1 |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
28 except ImportError: |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
29 from mercurial.peer import peerrepository |
914
a103d5211237
svnrepo: handle module/class rename in hg 2.3
Bryan O'Sullivan <bryano@fb.com>
parents:
877
diff
changeset
|
30 from mercurial import httppeer |
a103d5211237
svnrepo: handle module/class rename in hg 2.3
Bryan O'Sullivan <bryano@fb.com>
parents:
877
diff
changeset
|
31 except ImportError: |
a103d5211237
svnrepo: handle module/class rename in hg 2.3
Bryan O'Sullivan <bryano@fb.com>
parents:
877
diff
changeset
|
32 from mercurial.repo import repository as peerrepository |
a103d5211237
svnrepo: handle module/class rename in hg 2.3
Bryan O'Sullivan <bryano@fb.com>
parents:
877
diff
changeset
|
33 from mercurial import httprepo as httppeer |
124
291925677a9f
tag_repo: remove gentags command, extend repo.tags(), HgChangeEditor now takes either repo or repo_path
Luke Opperman <luke@loppear.com>
parents:
diff
changeset
|
34 |
858
bb6a013abaed
phases: mark newly created commits from subversion as 'public' to fix #335
Sean Farley <sean@mcs.anl.gov>
parents:
844
diff
changeset
|
35 try: |
bb6a013abaed
phases: mark newly created commits from subversion as 'public' to fix #335
Sean Farley <sean@mcs.anl.gov>
parents:
844
diff
changeset
|
36 from mercurial import phases |
bb6a013abaed
phases: mark newly created commits from subversion as 'public' to fix #335
Sean Farley <sean@mcs.anl.gov>
parents:
844
diff
changeset
|
37 phases.public # defeat demand import |
bb6a013abaed
phases: mark newly created commits from subversion as 'public' to fix #335
Sean Farley <sean@mcs.anl.gov>
parents:
844
diff
changeset
|
38 except ImportError: |
bb6a013abaed
phases: mark newly created commits from subversion as 'public' to fix #335
Sean Farley <sean@mcs.anl.gov>
parents:
844
diff
changeset
|
39 phases = None |
bb6a013abaed
phases: mark newly created commits from subversion as 'public' to fix #335
Sean Farley <sean@mcs.anl.gov>
parents:
844
diff
changeset
|
40 |
844
95d040755254
Added ability to configure the password stores
Jerome M. BERGER <jerome.berger@sagemcom.com>
parents:
831
diff
changeset
|
41 import re |
326
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
42 import util |
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
43 import wrappers |
464
0f7095f53ca3
Extend svnrepos with SubversionRepo and SVNMeta
Patrick Mezard <pmezard@gmail.com>
parents:
443
diff
changeset
|
44 import svnwrap |
0f7095f53ca3
Extend svnrepos with SubversionRepo and SVNMeta
Patrick Mezard <pmezard@gmail.com>
parents:
443
diff
changeset
|
45 import svnmeta |
0f7095f53ca3
Extend svnrepos with SubversionRepo and SVNMeta
Patrick Mezard <pmezard@gmail.com>
parents:
443
diff
changeset
|
46 |
0f7095f53ca3
Extend svnrepos with SubversionRepo and SVNMeta
Patrick Mezard <pmezard@gmail.com>
parents:
443
diff
changeset
|
47 propertycache = hgutil.propertycache |
124
291925677a9f
tag_repo: remove gentags command, extend repo.tags(), HgChangeEditor now takes either repo or repo_path
Luke Opperman <luke@loppear.com>
parents:
diff
changeset
|
48 |
831
be5bbb2f2d68
svnrepo: kludge to work around hash changes between stupid and replay in hg 1.9
Augie Fackler <durin42@gmail.com>
parents:
805
diff
changeset
|
49 class ctxctx(object): |
be5bbb2f2d68
svnrepo: kludge to work around hash changes between stupid and replay in hg 1.9
Augie Fackler <durin42@gmail.com>
parents:
805
diff
changeset
|
50 """Proxies a ctx object and ensures files is never empty.""" |
be5bbb2f2d68
svnrepo: kludge to work around hash changes between stupid and replay in hg 1.9
Augie Fackler <durin42@gmail.com>
parents:
805
diff
changeset
|
51 def __init__(self, ctx): |
be5bbb2f2d68
svnrepo: kludge to work around hash changes between stupid and replay in hg 1.9
Augie Fackler <durin42@gmail.com>
parents:
805
diff
changeset
|
52 self._ctx = ctx |
be5bbb2f2d68
svnrepo: kludge to work around hash changes between stupid and replay in hg 1.9
Augie Fackler <durin42@gmail.com>
parents:
805
diff
changeset
|
53 |
be5bbb2f2d68
svnrepo: kludge to work around hash changes between stupid and replay in hg 1.9
Augie Fackler <durin42@gmail.com>
parents:
805
diff
changeset
|
54 def files(self): |
be5bbb2f2d68
svnrepo: kludge to work around hash changes between stupid and replay in hg 1.9
Augie Fackler <durin42@gmail.com>
parents:
805
diff
changeset
|
55 return self._ctx.files() or ['.svn'] |
be5bbb2f2d68
svnrepo: kludge to work around hash changes between stupid and replay in hg 1.9
Augie Fackler <durin42@gmail.com>
parents:
805
diff
changeset
|
56 |
be5bbb2f2d68
svnrepo: kludge to work around hash changes between stupid and replay in hg 1.9
Augie Fackler <durin42@gmail.com>
parents:
805
diff
changeset
|
57 def filectx(self, path, filelog=None): |
be5bbb2f2d68
svnrepo: kludge to work around hash changes between stupid and replay in hg 1.9
Augie Fackler <durin42@gmail.com>
parents:
805
diff
changeset
|
58 if path == '.svn': |
be5bbb2f2d68
svnrepo: kludge to work around hash changes between stupid and replay in hg 1.9
Augie Fackler <durin42@gmail.com>
parents:
805
diff
changeset
|
59 raise IOError(errno.ENOENT, '.svn is a fake file') |
be5bbb2f2d68
svnrepo: kludge to work around hash changes between stupid and replay in hg 1.9
Augie Fackler <durin42@gmail.com>
parents:
805
diff
changeset
|
60 return self._ctx.filectx(path, filelog=filelog) |
be5bbb2f2d68
svnrepo: kludge to work around hash changes between stupid and replay in hg 1.9
Augie Fackler <durin42@gmail.com>
parents:
805
diff
changeset
|
61 |
be5bbb2f2d68
svnrepo: kludge to work around hash changes between stupid and replay in hg 1.9
Augie Fackler <durin42@gmail.com>
parents:
805
diff
changeset
|
62 def __getattr__(self, name): |
be5bbb2f2d68
svnrepo: kludge to work around hash changes between stupid and replay in hg 1.9
Augie Fackler <durin42@gmail.com>
parents:
805
diff
changeset
|
63 return getattr(self._ctx, name) |
be5bbb2f2d68
svnrepo: kludge to work around hash changes between stupid and replay in hg 1.9
Augie Fackler <durin42@gmail.com>
parents:
805
diff
changeset
|
64 |
be5bbb2f2d68
svnrepo: kludge to work around hash changes between stupid and replay in hg 1.9
Augie Fackler <durin42@gmail.com>
parents:
805
diff
changeset
|
65 def __getitem__(self, key): |
be5bbb2f2d68
svnrepo: kludge to work around hash changes between stupid and replay in hg 1.9
Augie Fackler <durin42@gmail.com>
parents:
805
diff
changeset
|
66 return self._ctx[key] |
be5bbb2f2d68
svnrepo: kludge to work around hash changes between stupid and replay in hg 1.9
Augie Fackler <durin42@gmail.com>
parents:
805
diff
changeset
|
67 |
326
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
68 def generate_repo_class(ui, repo): |
331
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
328
diff
changeset
|
69 """ This function generates the local repository wrapper. """ |
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
328
diff
changeset
|
70 |
347
537de0300510
Remove the 'outgoing' wrapper, and use the Mercurial infrastructure instead.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
345
diff
changeset
|
71 superclass = repo.__class__ |
537de0300510
Remove the 'outgoing' wrapper, and use the Mercurial infrastructure instead.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
345
diff
changeset
|
72 |
326
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
73 def remotesvn(fn): |
331
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
328
diff
changeset
|
74 """ |
326
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
75 Filter for instance methods which require the first argument |
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
76 to be a remote Subversion repository instance. |
331
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
328
diff
changeset
|
77 """ |
618
82bfc96a1311
svnrepo: support new discovery module introduced in 3d0591a66118
Augie Fackler <durin42@gmail.com>
parents:
617
diff
changeset
|
78 original = getattr(repo, fn.__name__, None) |
82bfc96a1311
svnrepo: support new discovery module introduced in 3d0591a66118
Augie Fackler <durin42@gmail.com>
parents:
617
diff
changeset
|
79 |
326
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
80 def wrapper(self, *args, **opts): |
342
76c833526fbc
Use fallbacks in the wrappers for Subversion support, instead of prefixes.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
337
diff
changeset
|
81 capable = getattr(args[0], 'capable', lambda x: False) |
76c833526fbc
Use fallbacks in the wrappers for Subversion support, instead of prefixes.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
337
diff
changeset
|
82 if capable('subversion'): |
326
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
83 return fn(self, *args, **opts) |
331
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
328
diff
changeset
|
84 else: |
347
537de0300510
Remove the 'outgoing' wrapper, and use the Mercurial infrastructure instead.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
345
diff
changeset
|
85 return original(*args, **opts) |
326
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
86 wrapper.__name__ = fn.__name__ + '_wrapper' |
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
87 wrapper.__doc__ = fn.__doc__ |
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
88 return wrapper |
124
291925677a9f
tag_repo: remove gentags command, extend repo.tags(), HgChangeEditor now takes either repo or repo_path
Luke Opperman <luke@loppear.com>
parents:
diff
changeset
|
89 |
347
537de0300510
Remove the 'outgoing' wrapper, and use the Mercurial infrastructure instead.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
345
diff
changeset
|
90 class svnlocalrepo(superclass): |
831
be5bbb2f2d68
svnrepo: kludge to work around hash changes between stupid and replay in hg 1.9
Augie Fackler <durin42@gmail.com>
parents:
805
diff
changeset
|
91 def svn_commitctx(self, ctx): |
be5bbb2f2d68
svnrepo: kludge to work around hash changes between stupid and replay in hg 1.9
Augie Fackler <durin42@gmail.com>
parents:
805
diff
changeset
|
92 """Commits a ctx, but defeats manifest recycling introduced in hg 1.9.""" |
1170
61d4fb78370b
pull: fix pull when phases.new-commit=secret
Augie Fackler <raf@durin42.com>
parents:
1125
diff
changeset
|
93 ncbackup = self.ui.backupconfig('phases', 'new-commit') |
61d4fb78370b
pull: fix pull when phases.new-commit=secret
Augie Fackler <raf@durin42.com>
parents:
1125
diff
changeset
|
94 try: |
61d4fb78370b
pull: fix pull when phases.new-commit=secret
Augie Fackler <raf@durin42.com>
parents:
1125
diff
changeset
|
95 self.ui.setconfig('phases', 'new-commit', 'public') |
61d4fb78370b
pull: fix pull when phases.new-commit=secret
Augie Fackler <raf@durin42.com>
parents:
1125
diff
changeset
|
96 hash = self.commitctx(ctxctx(ctx)) |
61d4fb78370b
pull: fix pull when phases.new-commit=secret
Augie Fackler <raf@durin42.com>
parents:
1125
diff
changeset
|
97 finally: |
61d4fb78370b
pull: fix pull when phases.new-commit=secret
Augie Fackler <raf@durin42.com>
parents:
1125
diff
changeset
|
98 self.ui.restoreconfig(ncbackup) |
877
2c9f4c1686fa
svnrepo: don't break on old hg versions that lack pushkey
Augie Fackler <raf@durin42.com>
parents:
858
diff
changeset
|
99 if phases is not None and getattr(self, 'pushkey', False): |
858
bb6a013abaed
phases: mark newly created commits from subversion as 'public' to fix #335
Sean Farley <sean@mcs.anl.gov>
parents:
844
diff
changeset
|
100 # set phase to be public |
bb6a013abaed
phases: mark newly created commits from subversion as 'public' to fix #335
Sean Farley <sean@mcs.anl.gov>
parents:
844
diff
changeset
|
101 self.pushkey('phases', self[hash].hex(), str(phases.draft), str(phases.public)) |
bb6a013abaed
phases: mark newly created commits from subversion as 'public' to fix #335
Sean Farley <sean@mcs.anl.gov>
parents:
844
diff
changeset
|
102 return hash |
831
be5bbb2f2d68
svnrepo: kludge to work around hash changes between stupid and replay in hg 1.9
Augie Fackler <durin42@gmail.com>
parents:
805
diff
changeset
|
103 |
1246
2179747e7fea
push: wrap exchange.push when localrepository.push isn't available
Siddharth Agarwal <sid0@fb.com>
parents:
1171
diff
changeset
|
104 if hgutil.safehasattr(localrepo.localrepository, 'push'): |
2179747e7fea
push: wrap exchange.push when localrepository.push isn't available
Siddharth Agarwal <sid0@fb.com>
parents:
1171
diff
changeset
|
105 # Mercurial < 3.2 |
2179747e7fea
push: wrap exchange.push when localrepository.push isn't available
Siddharth Agarwal <sid0@fb.com>
parents:
1171
diff
changeset
|
106 # TODO use newbranch to allow branch creation in Subversion? |
2179747e7fea
push: wrap exchange.push when localrepository.push isn't available
Siddharth Agarwal <sid0@fb.com>
parents:
1171
diff
changeset
|
107 @remotesvn |
2179747e7fea
push: wrap exchange.push when localrepository.push isn't available
Siddharth Agarwal <sid0@fb.com>
parents:
1171
diff
changeset
|
108 def push(self, remote, force=False, revs=None, newbranch=None): |
2179747e7fea
push: wrap exchange.push when localrepository.push isn't available
Siddharth Agarwal <sid0@fb.com>
parents:
1171
diff
changeset
|
109 return wrappers.push(self, remote, force, revs) |
347
537de0300510
Remove the 'outgoing' wrapper, and use the Mercurial infrastructure instead.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
345
diff
changeset
|
110 |
1247
3a4d74823187
pull: wrap exchange.pull if localrepository.pull isn't available
Siddharth Agarwal <sid0@fb.com>
parents:
1246
diff
changeset
|
111 if hgutil.safehasattr(localrepo.localrepository, 'pull'): |
3a4d74823187
pull: wrap exchange.pull if localrepository.pull isn't available
Siddharth Agarwal <sid0@fb.com>
parents:
1246
diff
changeset
|
112 # Mercurial < 3.2 |
3a4d74823187
pull: wrap exchange.pull if localrepository.pull isn't available
Siddharth Agarwal <sid0@fb.com>
parents:
1246
diff
changeset
|
113 @remotesvn |
3a4d74823187
pull: wrap exchange.pull if localrepository.pull isn't available
Siddharth Agarwal <sid0@fb.com>
parents:
1246
diff
changeset
|
114 def pull(self, remote, heads=[], force=False): |
3a4d74823187
pull: wrap exchange.pull if localrepository.pull isn't available
Siddharth Agarwal <sid0@fb.com>
parents:
1246
diff
changeset
|
115 return wrappers.pull(self, remote, heads, force) |
347
537de0300510
Remove the 'outgoing' wrapper, and use the Mercurial infrastructure instead.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
345
diff
changeset
|
116 |
537de0300510
Remove the 'outgoing' wrapper, and use the Mercurial infrastructure instead.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
345
diff
changeset
|
117 @remotesvn |
537de0300510
Remove the 'outgoing' wrapper, and use the Mercurial infrastructure instead.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
345
diff
changeset
|
118 def findoutgoing(self, remote, base=None, heads=None, force=False): |
805
a3f727c41c1d
Fix breakage introduced by discovery refactoring
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
754
diff
changeset
|
119 return wrappers.findoutgoing(repo, remote, heads, force) |
331
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
328
diff
changeset
|
120 |
1155
ce9945ea3528
svnrepo: augment svnmeta method to take new error checking parameter
Sean Farley <sean.michael.farley@gmail.com>
parents:
1126
diff
changeset
|
121 def svnmeta(self, uuid=None, subdir=None, skiperrorcheck=False): |
ce9945ea3528
svnrepo: augment svnmeta method to take new error checking parameter
Sean Farley <sean.michael.farley@gmail.com>
parents:
1126
diff
changeset
|
122 return svnmeta.SVNMeta(self, uuid, subdir, skiperrorcheck) |
464
0f7095f53ca3
Extend svnrepos with SubversionRepo and SVNMeta
Patrick Mezard <pmezard@gmail.com>
parents:
443
diff
changeset
|
123 |
326
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
124 repo.__class__ = svnlocalrepo |
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
125 |
914
a103d5211237
svnrepo: handle module/class rename in hg 2.3
Bryan O'Sullivan <bryano@fb.com>
parents:
877
diff
changeset
|
126 class svnremoterepo(peerrepository): |
331
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
328
diff
changeset
|
127 """ the dumb wrapper for actual Subversion repositories """ |
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
328
diff
changeset
|
128 |
464
0f7095f53ca3
Extend svnrepos with SubversionRepo and SVNMeta
Patrick Mezard <pmezard@gmail.com>
parents:
443
diff
changeset
|
129 def __init__(self, ui, path=None): |
1519
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
130 self._ui = ui |
921
8faa91951bb1
svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents:
915
diff
changeset
|
131 if path is None: |
8faa91951bb1
svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents:
915
diff
changeset
|
132 path = self.ui.config('paths', 'default-push') |
464
0f7095f53ca3
Extend svnrepos with SubversionRepo and SVNMeta
Patrick Mezard <pmezard@gmail.com>
parents:
443
diff
changeset
|
133 if path is None: |
0f7095f53ca3
Extend svnrepos with SubversionRepo and SVNMeta
Patrick Mezard <pmezard@gmail.com>
parents:
443
diff
changeset
|
134 path = self.ui.config('paths', 'default') |
754
caa527346a0f
svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
750
diff
changeset
|
135 if not path: |
1532
ae01b360320b
svnrepo: wrap too-wide abort message
Augie Fackler <raf@durin42.com>
parents:
1519
diff
changeset
|
136 raise hgutil.Abort('no Subversion URL specified. Expect ' |
ae01b360320b
svnrepo: wrap too-wide abort message
Augie Fackler <raf@durin42.com>
parents:
1519
diff
changeset
|
137 '[path] default= or [path] default-push= ' |
ae01b360320b
svnrepo: wrap too-wide abort message
Augie Fackler <raf@durin42.com>
parents:
1519
diff
changeset
|
138 'SVN URL entries in hgrc.') |
326
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
139 self.path = path |
1519
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
140 if peerapi == 1: |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
141 self._capabilities = set(['lookup', 'subversion']) |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
142 elif peerapi == 0: |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
143 self.capabilities = set(['lookup', 'subversion']) |
331
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
328
diff
changeset
|
144 |
1519
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
145 if peerapi == 1: |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
146 def capabilities(self): |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
147 return self._capabilities |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
148 elif peerapi == 0: |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
149 def _capabilities(self): |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
150 return self.capabilities |
915
d6c47c33f6a2
fix breakage introduced by peer classes in hg 2.3
Bryan O'Sullivan <bryano@fb.com>
parents:
914
diff
changeset
|
151 |
1536
ed7c66b8cea6
svnrepo: move password_stores config to a property
Augie Fackler <raf@durin42.com>
parents:
1532
diff
changeset
|
152 @property |
ed7c66b8cea6
svnrepo: move password_stores config to a property
Augie Fackler <raf@durin42.com>
parents:
1532
diff
changeset
|
153 def password_stores(self): |
1537
27c4daf50520
svnrepo: use configlist instead of rolling it ourselves
Augie Fackler <raf@durin42.com>
parents:
1536
diff
changeset
|
154 pws = self.ui.configlist('hgsubversion', 'password_stores') |
27c4daf50520
svnrepo: use configlist instead of rolling it ourselves
Augie Fackler <raf@durin42.com>
parents:
1536
diff
changeset
|
155 if pws: |
27c4daf50520
svnrepo: use configlist instead of rolling it ourselves
Augie Fackler <raf@durin42.com>
parents:
1536
diff
changeset
|
156 return pws |
1536
ed7c66b8cea6
svnrepo: move password_stores config to a property
Augie Fackler <raf@durin42.com>
parents:
1532
diff
changeset
|
157 return None |
ed7c66b8cea6
svnrepo: move password_stores config to a property
Augie Fackler <raf@durin42.com>
parents:
1532
diff
changeset
|
158 |
464
0f7095f53ca3
Extend svnrepos with SubversionRepo and SVNMeta
Patrick Mezard <pmezard@gmail.com>
parents:
443
diff
changeset
|
159 @propertycache |
468
037bba1c6736
svnrepo: expose the same svnurl than SubversionRepo
Patrick Mezard <pmezard@gmail.com>
parents:
464
diff
changeset
|
160 def svnauth(self): |
464
0f7095f53ca3
Extend svnrepos with SubversionRepo and SVNMeta
Patrick Mezard <pmezard@gmail.com>
parents:
443
diff
changeset
|
161 # DO NOT default the user to hg's getuser(). If you provide |
0f7095f53ca3
Extend svnrepos with SubversionRepo and SVNMeta
Patrick Mezard <pmezard@gmail.com>
parents:
443
diff
changeset
|
162 # *any* default username to Subversion, it won't use any remembered |
0f7095f53ca3
Extend svnrepos with SubversionRepo and SVNMeta
Patrick Mezard <pmezard@gmail.com>
parents:
443
diff
changeset
|
163 # username for the desired realm, breaking OS X Keychain support, |
0f7095f53ca3
Extend svnrepos with SubversionRepo and SVNMeta
Patrick Mezard <pmezard@gmail.com>
parents:
443
diff
changeset
|
164 # GNOME keyring support, and all similar tools. |
0f7095f53ca3
Extend svnrepos with SubversionRepo and SVNMeta
Patrick Mezard <pmezard@gmail.com>
parents:
443
diff
changeset
|
165 user = self.ui.config('hgsubversion', 'username') |
0f7095f53ca3
Extend svnrepos with SubversionRepo and SVNMeta
Patrick Mezard <pmezard@gmail.com>
parents:
443
diff
changeset
|
166 passwd = self.ui.config('hgsubversion', 'password') |
468
037bba1c6736
svnrepo: expose the same svnurl than SubversionRepo
Patrick Mezard <pmezard@gmail.com>
parents:
464
diff
changeset
|
167 url = util.normalize_url(self.path) |
037bba1c6736
svnrepo: expose the same svnurl than SubversionRepo
Patrick Mezard <pmezard@gmail.com>
parents:
464
diff
changeset
|
168 user, passwd, url = svnwrap.parse_url(url, user, passwd) |
037bba1c6736
svnrepo: expose the same svnurl than SubversionRepo
Patrick Mezard <pmezard@gmail.com>
parents:
464
diff
changeset
|
169 return url, user, passwd |
037bba1c6736
svnrepo: expose the same svnurl than SubversionRepo
Patrick Mezard <pmezard@gmail.com>
parents:
464
diff
changeset
|
170 |
037bba1c6736
svnrepo: expose the same svnurl than SubversionRepo
Patrick Mezard <pmezard@gmail.com>
parents:
464
diff
changeset
|
171 @property |
037bba1c6736
svnrepo: expose the same svnurl than SubversionRepo
Patrick Mezard <pmezard@gmail.com>
parents:
464
diff
changeset
|
172 def svnurl(self): |
1453
d890d8d4e168
svnrepo: change svnurl to not use self.svn
Jun Wu <quark@fb.com>
parents:
1247
diff
changeset
|
173 return self.svnauth[0] |
468
037bba1c6736
svnrepo: expose the same svnurl than SubversionRepo
Patrick Mezard <pmezard@gmail.com>
parents:
464
diff
changeset
|
174 |
037bba1c6736
svnrepo: expose the same svnurl than SubversionRepo
Patrick Mezard <pmezard@gmail.com>
parents:
464
diff
changeset
|
175 @propertycache |
037bba1c6736
svnrepo: expose the same svnurl than SubversionRepo
Patrick Mezard <pmezard@gmail.com>
parents:
464
diff
changeset
|
176 def svn(self): |
611
b70f7c82b9b8
svncommands: fix layering violation & tweak error messages.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
597
diff
changeset
|
177 try: |
1034
3e716bb9f6df
use old argument style to support python 2.4
Shun-ichi GOTO <gotoh@taiyo.co.jp>
parents:
998
diff
changeset
|
178 auth = self.svnauth |
3e716bb9f6df
use old argument style to support python 2.4
Shun-ichi GOTO <gotoh@taiyo.co.jp>
parents:
998
diff
changeset
|
179 return svnwrap.SubversionRepo(auth[0], auth[1], auth[2], password_stores=self.password_stores) |
611
b70f7c82b9b8
svncommands: fix layering violation & tweak error messages.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
597
diff
changeset
|
180 except svnwrap.SubversionConnectionException, e: |
b70f7c82b9b8
svncommands: fix layering violation & tweak error messages.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
597
diff
changeset
|
181 self.ui.traceback() |
b70f7c82b9b8
svncommands: fix layering violation & tweak error messages.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
597
diff
changeset
|
182 raise hgutil.Abort(e) |
464
0f7095f53ca3
Extend svnrepos with SubversionRepo and SVNMeta
Patrick Mezard <pmezard@gmail.com>
parents:
443
diff
changeset
|
183 |
1519
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
184 @property |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
185 def ui(self): |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
186 return self._ui |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
187 |
326
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
188 def url(self): |
345
49a656155a92
remove pointless rstrip('/')
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
344
diff
changeset
|
189 return self.path |
326
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
190 |
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
191 def lookup(self, key): |
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
192 return key |
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
193 |
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
194 def cancopy(self): |
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
195 return False |
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
196 |
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
197 def heads(self, *args, **opts): |
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
198 """ |
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
199 Whenever this function is hit, we abort. The traceback is useful for |
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
200 figuring out where to intercept the functionality. |
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
201 """ |
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
202 raise hgutil.Abort('command unavailable for Subversion repositories') |
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
203 |
628
4375d37fea1e
svnrepo: fix issue 187: ignore pushable bookmarks in hg 1.6
James McKay <code@jamesmckay.net>
parents:
618
diff
changeset
|
204 def pushkey(self, namespace, key, old, new): |
4375d37fea1e
svnrepo: fix issue 187: ignore pushable bookmarks in hg 1.6
James McKay <code@jamesmckay.net>
parents:
618
diff
changeset
|
205 return False |
4375d37fea1e
svnrepo: fix issue 187: ignore pushable bookmarks in hg 1.6
James McKay <code@jamesmckay.net>
parents:
618
diff
changeset
|
206 |
4375d37fea1e
svnrepo: fix issue 187: ignore pushable bookmarks in hg 1.6
James McKay <code@jamesmckay.net>
parents:
618
diff
changeset
|
207 def listkeys(self, namespace): |
4375d37fea1e
svnrepo: fix issue 187: ignore pushable bookmarks in hg 1.6
James McKay <code@jamesmckay.net>
parents:
618
diff
changeset
|
208 return {} |
4375d37fea1e
svnrepo: fix issue 187: ignore pushable bookmarks in hg 1.6
James McKay <code@jamesmckay.net>
parents:
618
diff
changeset
|
209 |
1519
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
210 if peerapi == 1: |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
211 def canpush(self): |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
212 return True |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
213 |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
214 def close(self): |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
215 pass |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
216 |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
217 def iterbatch(self): |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
218 raise NotImplementedError |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
219 |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
220 def known(self): |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
221 raise NotImplementedError |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
222 |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
223 def getbundle(self): |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
224 raise NotImplementedError |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
225 |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
226 def local(self): |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
227 return None |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
228 |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
229 def peer(self): |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
230 return self |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
231 |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
232 def stream_out(self): |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
233 raise NotImplementedError |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
234 |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
235 def unbundle(self): |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
236 raise NotImplementedError |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
237 |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
238 def branchmap(self): |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
239 raise NotImplementedError |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
240 |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
241 def debugwireargs(self): |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
242 raise NotImplementedError |
aec176db232c
svnrepo: update with the latest upstream change
Jun Wu <quark@fb.com>
parents:
1453
diff
changeset
|
243 |
326
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
244 def instance(ui, url, create): |
342
76c833526fbc
Use fallbacks in the wrappers for Subversion support, instead of prefixes.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
337
diff
changeset
|
245 if url.startswith('http://') or url.startswith('https://'): |
76c833526fbc
Use fallbacks in the wrappers for Subversion support, instead of prefixes.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
337
diff
changeset
|
246 try: |
76c833526fbc
Use fallbacks in the wrappers for Subversion support, instead of prefixes.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
337
diff
changeset
|
247 # may yield a bogus 'real URL...' message |
914
a103d5211237
svnrepo: handle module/class rename in hg 2.3
Bryan O'Sullivan <bryano@fb.com>
parents:
877
diff
changeset
|
248 return httppeer.instance(ui, url, create) |
342
76c833526fbc
Use fallbacks in the wrappers for Subversion support, instead of prefixes.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
337
diff
changeset
|
249 except error.RepoError: |
597
737292a31028
svnrepo: ease debugging of Subversion fallback
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
468
diff
changeset
|
250 ui.traceback() |
737292a31028
svnrepo: ease debugging of Subversion fallback
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
468
diff
changeset
|
251 ui.note('(falling back to Subversion support)\n') |
342
76c833526fbc
Use fallbacks in the wrappers for Subversion support, instead of prefixes.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
337
diff
changeset
|
252 |
326
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
253 if create: |
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
254 raise hgutil.Abort('cannot create new remote Subversion repository') |
33736e2e25f0
alternate approach for supporting svn schemes for repository paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
158
diff
changeset
|
255 |
965
b748a0eed09a
svnwrap: Refactor the svn_auth_ssl_server_trust_prompt to add other handler
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
964
diff
changeset
|
256 svnwrap.prompt_callback(SubversionPrompt(ui)) |
331
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
328
diff
changeset
|
257 return svnremoterepo(ui, url) |
964
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
258 |
965
b748a0eed09a
svnwrap: Refactor the svn_auth_ssl_server_trust_prompt to add other handler
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
964
diff
changeset
|
259 class SubversionPrompt(object): |
b748a0eed09a
svnwrap: Refactor the svn_auth_ssl_server_trust_prompt to add other handler
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
964
diff
changeset
|
260 def __init__(self, ui): |
b748a0eed09a
svnwrap: Refactor the svn_auth_ssl_server_trust_prompt to add other handler
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
964
diff
changeset
|
261 self.ui = ui |
b748a0eed09a
svnwrap: Refactor the svn_auth_ssl_server_trust_prompt to add other handler
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
964
diff
changeset
|
262 |
966
7561aef55a4b
svnwrap: Improved handling of simple_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
965
diff
changeset
|
263 def maybe_print_realm(self, realm): |
7561aef55a4b
svnwrap: Improved handling of simple_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
965
diff
changeset
|
264 if realm: |
7561aef55a4b
svnwrap: Improved handling of simple_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
965
diff
changeset
|
265 self.ui.write('Authentication realm: %s\n' % (realm,)) |
7561aef55a4b
svnwrap: Improved handling of simple_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
965
diff
changeset
|
266 self.ui.flush() |
7561aef55a4b
svnwrap: Improved handling of simple_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
965
diff
changeset
|
267 |
967
0b6a6a7c26f3
svnwrap: Improved handling of username_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
966
diff
changeset
|
268 def username(self, realm, may_save, pool=None): |
0b6a6a7c26f3
svnwrap: Improved handling of username_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
966
diff
changeset
|
269 self.maybe_print_realm(realm) |
0b6a6a7c26f3
svnwrap: Improved handling of username_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
966
diff
changeset
|
270 username = self.ui.prompt('Username: ', default='') |
0b6a6a7c26f3
svnwrap: Improved handling of username_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
966
diff
changeset
|
271 return (username, bool(may_save)) |
0b6a6a7c26f3
svnwrap: Improved handling of username_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
966
diff
changeset
|
272 |
966
7561aef55a4b
svnwrap: Improved handling of simple_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
965
diff
changeset
|
273 def simple(self, realm, default_username, may_save, pool=None): |
7561aef55a4b
svnwrap: Improved handling of simple_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
965
diff
changeset
|
274 self.maybe_print_realm(realm) |
7561aef55a4b
svnwrap: Improved handling of simple_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
965
diff
changeset
|
275 if default_username: |
7561aef55a4b
svnwrap: Improved handling of simple_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
965
diff
changeset
|
276 username = default_username |
7561aef55a4b
svnwrap: Improved handling of simple_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
965
diff
changeset
|
277 else: |
7561aef55a4b
svnwrap: Improved handling of simple_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
965
diff
changeset
|
278 username = self.ui.prompt('Username: ', default='') |
986
1bdd075a490a
cleanup: avoid \' in strings where easy
Augie Fackler <raf@durin42.com>
parents:
970
diff
changeset
|
279 password = self.ui.getpass("Password for '%s': " % (username,), default='') |
966
7561aef55a4b
svnwrap: Improved handling of simple_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
965
diff
changeset
|
280 return (username, password, bool(may_save)) |
7561aef55a4b
svnwrap: Improved handling of simple_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
965
diff
changeset
|
281 |
968
c500bc862215
svnwrap: Implement handling of ssl_client_cert_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
967
diff
changeset
|
282 def ssl_client_cert(self, realm, may_save, pool=None): |
c500bc862215
svnwrap: Implement handling of ssl_client_cert_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
967
diff
changeset
|
283 self.maybe_print_realm(realm) |
c500bc862215
svnwrap: Implement handling of ssl_client_cert_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
967
diff
changeset
|
284 cert_file = self.ui.prompt('Client certificate filename: ', default='') |
c500bc862215
svnwrap: Implement handling of ssl_client_cert_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
967
diff
changeset
|
285 return (cert_file, bool(may_save)) |
c500bc862215
svnwrap: Implement handling of ssl_client_cert_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
967
diff
changeset
|
286 |
969
145611306f8a
svnwrap: Implement handling of ssl_client_cert_pw_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
968
diff
changeset
|
287 def ssl_client_cert_pw(self, realm, may_save, pool=None): |
986
1bdd075a490a
cleanup: avoid \' in strings where easy
Augie Fackler <raf@durin42.com>
parents:
970
diff
changeset
|
288 password = self.ui.getpass("Passphrase for '%s': " % (realm,), default='') |
969
145611306f8a
svnwrap: Implement handling of ssl_client_cert_pw_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
968
diff
changeset
|
289 return (password, bool(may_save)) |
145611306f8a
svnwrap: Implement handling of ssl_client_cert_pw_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
968
diff
changeset
|
290 |
970
3e59f9af15b0
svnrepo: Support --insecure option the same as the mercurial
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
969
diff
changeset
|
291 def insecure(fn): |
3e59f9af15b0
svnrepo: Support --insecure option the same as the mercurial
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
969
diff
changeset
|
292 def fun(self, *args, **kwargs): |
3e59f9af15b0
svnrepo: Support --insecure option the same as the mercurial
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
969
diff
changeset
|
293 failures = args[1] |
3e59f9af15b0
svnrepo: Support --insecure option the same as the mercurial
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
969
diff
changeset
|
294 cert_info = args[2] |
3e59f9af15b0
svnrepo: Support --insecure option the same as the mercurial
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
969
diff
changeset
|
295 # cert_info[0] is hostname |
3e59f9af15b0
svnrepo: Support --insecure option the same as the mercurial
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
969
diff
changeset
|
296 # cert_info[1] is fingerprint |
3e59f9af15b0
svnrepo: Support --insecure option the same as the mercurial
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
969
diff
changeset
|
297 |
3e59f9af15b0
svnrepo: Support --insecure option the same as the mercurial
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
969
diff
changeset
|
298 fingerprint = self.ui.config('hostfingerprints', cert_info[0]) |
3e59f9af15b0
svnrepo: Support --insecure option the same as the mercurial
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
969
diff
changeset
|
299 if fingerprint and fingerprint.lower() == cert_info[1].lower(): |
3e59f9af15b0
svnrepo: Support --insecure option the same as the mercurial
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
969
diff
changeset
|
300 # same as the acceptance temporarily |
3e59f9af15b0
svnrepo: Support --insecure option the same as the mercurial
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
969
diff
changeset
|
301 return (failures, False) |
3e59f9af15b0
svnrepo: Support --insecure option the same as the mercurial
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
969
diff
changeset
|
302 |
3e59f9af15b0
svnrepo: Support --insecure option the same as the mercurial
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
969
diff
changeset
|
303 cacerts = self.ui.config('web', 'cacerts') |
3e59f9af15b0
svnrepo: Support --insecure option the same as the mercurial
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
969
diff
changeset
|
304 if not cacerts: |
3e59f9af15b0
svnrepo: Support --insecure option the same as the mercurial
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
969
diff
changeset
|
305 # same as the acceptance temporarily |
3e59f9af15b0
svnrepo: Support --insecure option the same as the mercurial
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
969
diff
changeset
|
306 return (failures, False) |
3e59f9af15b0
svnrepo: Support --insecure option the same as the mercurial
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
969
diff
changeset
|
307 |
3e59f9af15b0
svnrepo: Support --insecure option the same as the mercurial
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
969
diff
changeset
|
308 return fn(self, *args, **kwargs) |
3e59f9af15b0
svnrepo: Support --insecure option the same as the mercurial
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
969
diff
changeset
|
309 return fun |
3e59f9af15b0
svnrepo: Support --insecure option the same as the mercurial
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
969
diff
changeset
|
310 |
3e59f9af15b0
svnrepo: Support --insecure option the same as the mercurial
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
969
diff
changeset
|
311 @insecure |
965
b748a0eed09a
svnwrap: Refactor the svn_auth_ssl_server_trust_prompt to add other handler
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
964
diff
changeset
|
312 def ssl_server_trust(self, realm, failures, cert_info, may_save, pool=None): |
986
1bdd075a490a
cleanup: avoid \' in strings where easy
Augie Fackler <raf@durin42.com>
parents:
970
diff
changeset
|
313 msg = "Error validating server certificate for '%s':\n" % (realm,) |
964
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
314 if failures & svnwrap.SSL_UNKNOWNCA: |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
315 msg += ( |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
316 ' - The certificate is not issued by a trusted authority. Use the\n' |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
317 ' fingerprint to validate the certificate manually!\n' |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
318 ) |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
319 if failures & svnwrap.SSL_CNMISMATCH: |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
320 msg += ' - The certificate hostname does not match.\n' |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
321 if failures & svnwrap.SSL_NOTYETVALID: |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
322 msg += ' - The certificate is not yet valid.\n' |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
323 if failures & svnwrap.SSL_EXPIRED: |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
324 msg += ' - The certificate has expired.\n' |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
325 if failures & svnwrap.SSL_OTHER: |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
326 msg += ' - The certificate has an unknown error.\n' |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
327 msg += ( |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
328 'Certificate information:\n' |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
329 '- Hostname: %s\n' |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
330 '- Valid: from %s until %s\n' |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
331 '- Issuer: %s\n' |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
332 '- Fingerprint: %s\n' |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
333 ) % ( |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
334 cert_info[0], # hostname |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
335 cert_info[2], # valid_from |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
336 cert_info[3], # valid_until |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
337 cert_info[4], # issuer_dname |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
338 cert_info[1], # fingerprint |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
339 ) |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
340 if may_save: |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
341 msg += '(R)eject, accept (t)emporarily or accept (p)ermanently? ' |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
342 choices = (('&Reject'), ('&Temporarily'), ('&Permanently')) |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
343 else: |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
344 msg += '(R)eject or accept (t)emporarily? ' |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
345 choices = (('&Reject'), ('&Temporarily')) |
1125
bab98093051b
fix promptchoice call, since it changed in mercurial 2.7 (change c58b6ab4c26f)
Michael Augustin <maugustin@gmx.net>
parents:
1034
diff
changeset
|
346 try: |
bab98093051b
fix promptchoice call, since it changed in mercurial 2.7 (change c58b6ab4c26f)
Michael Augustin <maugustin@gmx.net>
parents:
1034
diff
changeset
|
347 choice = self.ui.promptchoice(msg, choices, default=0) |
bab98093051b
fix promptchoice call, since it changed in mercurial 2.7 (change c58b6ab4c26f)
Michael Augustin <maugustin@gmx.net>
parents:
1034
diff
changeset
|
348 except TypeError: |
bab98093051b
fix promptchoice call, since it changed in mercurial 2.7 (change c58b6ab4c26f)
Michael Augustin <maugustin@gmx.net>
parents:
1034
diff
changeset
|
349 # mercurial version >2.6 use a different syntax and method signature |
bab98093051b
fix promptchoice call, since it changed in mercurial 2.7 (change c58b6ab4c26f)
Michael Augustin <maugustin@gmx.net>
parents:
1034
diff
changeset
|
350 msg += '$$ &Reject $$ &Temporarily ' |
bab98093051b
fix promptchoice call, since it changed in mercurial 2.7 (change c58b6ab4c26f)
Michael Augustin <maugustin@gmx.net>
parents:
1034
diff
changeset
|
351 if may_save: |
bab98093051b
fix promptchoice call, since it changed in mercurial 2.7 (change c58b6ab4c26f)
Michael Augustin <maugustin@gmx.net>
parents:
1034
diff
changeset
|
352 msg += '$$ &Permanently ' |
bab98093051b
fix promptchoice call, since it changed in mercurial 2.7 (change c58b6ab4c26f)
Michael Augustin <maugustin@gmx.net>
parents:
1034
diff
changeset
|
353 choice = self.ui.promptchoice(msg, default=0) |
bab98093051b
fix promptchoice call, since it changed in mercurial 2.7 (change c58b6ab4c26f)
Michael Augustin <maugustin@gmx.net>
parents:
1034
diff
changeset
|
354 |
964
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
355 if choice == 1: |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
356 creds = (failures, False) |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
357 elif may_save and choice == 2: |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
358 creds = (failures, True) |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
359 else: |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
360 creds = None |
27fec8bf9273
svnwrap: Implement handling of get_ssl_server_trust_prompt_provider
Mitsuhiro Koga <shiena.jp@gmail.com>
parents:
921
diff
changeset
|
361 return creds |