Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
remote-bzr: add support for shared repo
author
Felipe Contreras
<felipe.contreras@gmail.com>
Wed, 1 May 2013 01:10:03 +0000
(20:10 -0500)
committer
Junio C Hamano
<gitster@pobox.com>
Wed, 1 May 2013 05:06:47 +0000
(22:06 -0700)
This way all the remotes share the same data, so adding multiple
remotes, or renaming them doesn't create extra overhead.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/remote-helpers/git-remote-bzr
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
42b48ef
)
diff --git
a/contrib/remote-helpers/git-remote-bzr
b/contrib/remote-helpers/git-remote-bzr
index 38cec07ed850048bbc4dee3de3e1350f7ee6e533..9fe830e3cdae5f5d24893d78e1283442806cdf7c 100755
(executable)
--- a/
contrib/remote-helpers/git-remote-bzr
+++ b/
contrib/remote-helpers/git-remote-bzr
@@
-752,7
+752,20
@@
def get_repo(url, alias):
origin = bzrlib.bzrdir.BzrDir.open(url)
is_local = isinstance(origin.transport, bzrlib.transport.local.LocalTransport)
origin = bzrlib.bzrdir.BzrDir.open(url)
is_local = isinstance(origin.transport, bzrlib.transport.local.LocalTransport)
- clone_path = os.path.join(dirname, 'clone')
+ shared_path = os.path.join(gitdir, 'bzr')
+ try:
+ shared_dir = bzrlib.bzrdir.BzrDir.open(shared_path)
+ except bzrlib.errors.NotBranchError:
+ shared_dir = bzrlib.bzrdir.BzrDir.create(shared_path)
+ try:
+ shared_repo = shared_dir.open_repository()
+ except bzrlib.errors.NoRepositoryPresent:
+ shared_repo = shared_dir.create_repository(shared=True)
+
+ if not is_local:
+ clone_path = os.path.join(dirname, 'clone')
+ if not os.path.exists(clone_path):
+ os.mkdir(clone_path)
try:
repo = origin.open_repository()
try:
repo = origin.open_repository()
@@
-763,8
+776,6
@@
def get_repo(url, alias):
branch = origin.open_branch()
if not is_local:
branch = origin.open_branch()
if not is_local:
- if not os.path.exists(clone_path):
- os.mkdir(clone_path)
peers[name] = branch
branches[name] = get_remote_branch(origin, branch, name)
else:
peers[name] = branch
branches[name] = get_remote_branch(origin, branch, name)
else:
@@
-774,9
+785,6
@@
def get_repo(url, alias):
else:
# repository
else:
# repository
- if not is_local and not os.path.exists(clone_path):
- clonedir = bzrlib.bzrdir.BzrDir.create(clone_path)
-
for branch in repo.find_branches():
name = repo.user_transport.relpath(branch.base)
for branch in repo.find_branches():
name = repo.user_transport.relpath(branch.base)
@@
-800,7
+808,7
@@
def fix_path(alias, orig_url):
subprocess.call(cmd)
def main(args):
subprocess.call(cmd)
def main(args):
- global marks, prefix, dirname
+ global marks, prefix,
gitdir,
dirname
global tags, filenodes
global blob_marks
global parsed_refs
global tags, filenodes
global blob_marks
global parsed_refs