annotate hggit/gitrepo.py @ 1144:c9ba526e82d6 default tip master

Added signature for changeset c651bb6fcf33
author Kevin Bullock <kbullock@ringworld.org>
date Sun, 14 Oct 2018 21:43:45 -0500
parents 5edabf9db748
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
920
0e975d03f8ca gitrepo: use isgitsshuri in islocal
Sean Farley <sean@farley.io>
parents: 890
diff changeset
1 from util import isgitsshuri
1128
6141895a53c9 compat: switch from hgutil.Abort to error.Abort
Kevin Bullock <kbullock@ringworld.org>
parents: 1126
diff changeset
2 from mercurial import (
6141895a53c9 compat: switch from hgutil.Abort to error.Abort
Kevin Bullock <kbullock@ringworld.org>
parents: 1126
diff changeset
3 error,
6141895a53c9 compat: switch from hgutil.Abort to error.Abort
Kevin Bullock <kbullock@ringworld.org>
parents: 1126
diff changeset
4 util
6141895a53c9 compat: switch from hgutil.Abort to error.Abort
Kevin Bullock <kbullock@ringworld.org>
parents: 1126
diff changeset
5 )
1051
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
6
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
7 peerapi = False
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
8 try:
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
9 from mercurial.repository import peer as peerrepository
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
10 peerapi = True
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
11 except ImportError:
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
12 from mercurial.peer import peerrepository
461
de618e24dcdd gitrepo: cope with module/class renames in hg 2.3
Bryan O'Sullivan <bryano@fb.com>
parents: 458
diff changeset
13
1115
8ed6c0cae9b8 cleanup: add some blank lines
Sean Farley <sean@farley.io>
parents: 1094
diff changeset
14
462
406ed78809b2 gitrepo: correct capitalization of peerrepository
Augie Fackler <raf@durin42.com>
parents: 461
diff changeset
15 class gitrepo(peerrepository):
1126
e41773ad3584 gitrepo: add missing 'intents' keyword (from hg 4.6) to gitrepo.__init__
Paul Morelle <paul.morelle@octobus.net>
parents: 1115
diff changeset
16 def __init__(self, ui, path, create, intents=None):
890
5322f12e64ed gitrepo: flake8 cleanups
Sean Farley <sean@farley.io>
parents: 867
diff changeset
17 if create: # pragma: no cover
1128
6141895a53c9 compat: switch from hgutil.Abort to error.Abort
Kevin Bullock <kbullock@ringworld.org>
parents: 1126
diff changeset
18 raise error.Abort('Cannot create a git repository.')
1051
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
19 self._ui = ui
179
c5c63783ace0 Initial clone/pull/push support for git repositories
Abderrahim Kitouni <a.kitouni@gmail.com>
parents: 61
diff changeset
20 self.path = path
556
affd119533ae peer: pass localrepo to new gitrepo instances
David M. Carr <david@carrclan.us>
parents: 465
diff changeset
21 self.localrepo = None
347
2efbee89d3f7 gitrepo: update for pushable bookmarks
Augie Fackler <durin42@gmail.com>
parents: 344
diff changeset
22
1051
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
23 _peercapabilities = ['lookup']
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
24
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
25 def _capabilities(self):
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
26 return self._peercapabilities
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
27
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
28 def capabilities(self):
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
29 return self._peercapabilities
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
30
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
31 @property
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
32 def ui(self):
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
33 return self._ui
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
34
458
dfb2b7b5d586 gitrepo: add url() attribute to fix subrepo support
Augie Fackler <raf@durin42.com>
parents: 409
diff changeset
35 def url(self):
dfb2b7b5d586 gitrepo: add url() attribute to fix subrepo support
Augie Fackler <raf@durin42.com>
parents: 409
diff changeset
36 return self.path
dfb2b7b5d586 gitrepo: add url() attribute to fix subrepo support
Augie Fackler <raf@durin42.com>
parents: 409
diff changeset
37
232
0ba1aee0467c initial support for pull -r
Abderrahim Kitouni <a.kitouni@gmail.com>
parents: 215
diff changeset
38 def lookup(self, key):
0ba1aee0467c initial support for pull -r
Abderrahim Kitouni <a.kitouni@gmail.com>
parents: 215
diff changeset
39 if isinstance(key, str):
0ba1aee0467c initial support for pull -r
Abderrahim Kitouni <a.kitouni@gmail.com>
parents: 215
diff changeset
40 return key
347
2efbee89d3f7 gitrepo: update for pushable bookmarks
Augie Fackler <durin42@gmail.com>
parents: 344
diff changeset
41
257
75063203cfb5 Simple hack for handling wrong use of git repos (fixes issue 24 bb)
Abderrahim Kitouni <a.kitouni@gmail.com>
parents: 232
diff changeset
42 def local(self):
75063203cfb5 Simple hack for handling wrong use of git repos (fixes issue 24 bb)
Abderrahim Kitouni <a.kitouni@gmail.com>
parents: 232
diff changeset
43 if not self.path:
1128
6141895a53c9 compat: switch from hgutil.Abort to error.Abort
Kevin Bullock <kbullock@ringworld.org>
parents: 1126
diff changeset
44 raise error.RepoError
347
2efbee89d3f7 gitrepo: update for pushable bookmarks
Augie Fackler <durin42@gmail.com>
parents: 344
diff changeset
45
344
af48a5961432 Add just enough code to handle changes to cset discovery.
Augie Fackler <durin42@gmail.com>
parents: 260
diff changeset
46 def heads(self):
af48a5961432 Add just enough code to handle changes to cset discovery.
Augie Fackler <durin42@gmail.com>
parents: 260
diff changeset
47 return []
257
75063203cfb5 Simple hack for handling wrong use of git repos (fixes issue 24 bb)
Abderrahim Kitouni <a.kitouni@gmail.com>
parents: 232
diff changeset
48
347
2efbee89d3f7 gitrepo: update for pushable bookmarks
Augie Fackler <durin42@gmail.com>
parents: 344
diff changeset
49 def listkeys(self, namespace):
557
4f4ab2d89375 gitrepo: initial support for listkeys
David M. Carr <david@carrclan.us>
parents: 556
diff changeset
50 if namespace == 'namespaces':
890
5322f12e64ed gitrepo: flake8 cleanups
Sean Farley <sean@farley.io>
parents: 867
diff changeset
51 return {'bookmarks': ''}
557
4f4ab2d89375 gitrepo: initial support for listkeys
David M. Carr <david@carrclan.us>
parents: 556
diff changeset
52 elif namespace == 'bookmarks':
661
a0c7824d28ae gitrepo.listkeys: use githandler from localrepo
Siddharth Agarwal <sid0@fb.com>
parents: 564
diff changeset
53 if self.localrepo is not None:
a0c7824d28ae gitrepo.listkeys: use githandler from localrepo
Siddharth Agarwal <sid0@fb.com>
parents: 564
diff changeset
54 handler = self.localrepo.githandler
1094
5e49230a6cd5 fetch_pack: refactor to use compat.FetchPackResult
Sean Farley <sean@farley.io>
parents: 1091
diff changeset
55 result = handler.fetch_pack(self.path, heads=[])
717
40c43c02f5b1 listkeys: while looking for bookmarks, don't fetch a pack
Siddharth Agarwal <sid0@fb.com>
parents: 678
diff changeset
56 # map any git shas that exist in hg to hg shas
1091
367f9e0dc198 gitrepo: slight refactor to use {} instead of dict()
Sean Farley <sean@farley.io>
parents: 1051
diff changeset
57 stripped_refs = {
367f9e0dc198 gitrepo: slight refactor to use {} instead of dict()
Sean Farley <sean@farley.io>
parents: 1051
diff changeset
58 ref[11:]: handler.map_hg_get(val) or val
1094
5e49230a6cd5 fetch_pack: refactor to use compat.FetchPackResult
Sean Farley <sean@farley.io>
parents: 1091
diff changeset
59 for ref, val in result.refs.iteritems()
1091
367f9e0dc198 gitrepo: slight refactor to use {} instead of dict()
Sean Farley <sean@farley.io>
parents: 1051
diff changeset
60 if ref.startswith('refs/heads/')
367f9e0dc198 gitrepo: slight refactor to use {} instead of dict()
Sean Farley <sean@farley.io>
parents: 1051
diff changeset
61 }
557
4f4ab2d89375 gitrepo: initial support for listkeys
David M. Carr <david@carrclan.us>
parents: 556
diff changeset
62 return stripped_refs
347
2efbee89d3f7 gitrepo: update for pushable bookmarks
Augie Fackler <durin42@gmail.com>
parents: 344
diff changeset
63 return {}
2efbee89d3f7 gitrepo: update for pushable bookmarks
Augie Fackler <durin42@gmail.com>
parents: 344
diff changeset
64
2efbee89d3f7 gitrepo: update for pushable bookmarks
Augie Fackler <durin42@gmail.com>
parents: 344
diff changeset
65 def pushkey(self, namespace, key, old, new):
2efbee89d3f7 gitrepo: update for pushable bookmarks
Augie Fackler <durin42@gmail.com>
parents: 344
diff changeset
66 return False
2efbee89d3f7 gitrepo: update for pushable bookmarks
Augie Fackler <durin42@gmail.com>
parents: 344
diff changeset
67
1051
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
68 if peerapi:
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
69 def branchmap(self):
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
70 raise NotImplementedError
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
71
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
72 def canpush(self):
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
73 return True
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
74
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
75 def close(self):
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
76 pass
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
77
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
78 def debugwireargs(self):
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
79 raise NotImplementedError
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
80
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
81 def getbundle(self):
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
82 raise NotImplementedError
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
83
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
84 def iterbatch(self):
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
85 raise NotImplementedError
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
86
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
87 def known(self):
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
88 raise NotImplementedError
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
89
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
90 def peer(self):
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
91 return self
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
92
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
93 def stream_out(self):
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
94 raise NotImplementedError
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
95
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
96 def unbundle(self):
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
97 raise NotImplementedError
5db8d0d0ae47 compat: update for upcoming hg 4.4 release
Kevin Bullock <kbullock@ringworld.org>
parents: 966
diff changeset
98
1129
5edabf9db748 gitrepo: implement commandexecutor for hg 4.6
Sean Farley <sean@farley.io>
parents: 1128
diff changeset
99 def commandexecutor(self):
5edabf9db748 gitrepo: implement commandexecutor for hg 4.6
Sean Farley <sean@farley.io>
parents: 1128
diff changeset
100 from mercurial.wireprotov1peer import peerexecutor
5edabf9db748 gitrepo: implement commandexecutor for hg 4.6
Sean Farley <sean@farley.io>
parents: 1128
diff changeset
101 return peerexecutor(self)
1115
8ed6c0cae9b8 cleanup: add some blank lines
Sean Farley <sean@farley.io>
parents: 1094
diff changeset
102
60
05a96f7750ad add support for `hg clone git://github.com/defunkt/facebox.git`
Chris Wanstrath <chris@ozmm.org>
parents:
diff changeset
103 instance = gitrepo
402
e3b5b23f7236 Define gitrepo.islocal
Brendan Cully <brendan@kublai.com>
parents: 347
diff changeset
104
1115
8ed6c0cae9b8 cleanup: add some blank lines
Sean Farley <sean@farley.io>
parents: 1094
diff changeset
105
402
e3b5b23f7236 Define gitrepo.islocal
Brendan Cully <brendan@kublai.com>
parents: 347
diff changeset
106 def islocal(path):
920
0e975d03f8ca gitrepo: use isgitsshuri in islocal
Sean Farley <sean@farley.io>
parents: 890
diff changeset
107 if isgitsshuri(path):
0e975d03f8ca gitrepo: use isgitsshuri in islocal
Sean Farley <sean@farley.io>
parents: 890
diff changeset
108 return True
0e975d03f8ca gitrepo: use isgitsshuri in islocal
Sean Farley <sean@farley.io>
parents: 890
diff changeset
109
402
e3b5b23f7236 Define gitrepo.islocal
Brendan Cully <brendan@kublai.com>
parents: 347
diff changeset
110 u = util.url(path)
e3b5b23f7236 Define gitrepo.islocal
Brendan Cully <brendan@kublai.com>
parents: 347
diff changeset
111 return not u.scheme or u.scheme == 'file'