annotate hggit/gitrepo.py @ 1126:e41773ad3584

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