Mercurial > hg-git
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 |
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 | 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 | 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 | 99 |
1115
8ed6c0cae9b8
cleanup: add some blank lines
Sean Farley <sean@farley.io>
parents:
1094
diff
changeset
|
100 |
402 | 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 | 105 u = util.url(path) |
106 return not u.scheme or u.scheme == 'file' |