{"thread":{"id":"32094","subject":"[PATCH 0/2] remote-bzr: trivial updates","startedAt":"2012-11-13T01:03:26Z","lastAt":"2012-11-13T01:03:28Z","messageCount":3,"participants":["Felipe Contreras"],"isPatch":true,"patchVersion":1,"patchTotal":2},"messages":[{"id":"203032","messageId":"1352768608-20703-1-git-send-email-felipe.contreras@gmail.com","threadId":"32094","inReplyTo":null,"subject":"[PATCH 0/2] remote-bzr: trivial updates","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2012-11-13T01:03:26Z","receivedAt":"2012-11-13T01:03:26Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"Hi,\n\nHere's a fix for older versions of bzr, and a check for local repositories.\n\nFelipe Contreras (2):\n  remote-bzr: add support for older versions of bzr\n  remote-bzr: detect local repositories\n\n contrib/remote-helpers/git-remote-bzr | 54 +++++++++++++++++++++--------------\n 1 file changed, 33 insertions(+), 21 deletions(-)\n\n-- \n1.8.0\n"},{"id":"203033","messageId":"1352768608-20703-2-git-send-email-felipe.contreras@gmail.com","threadId":"32094","inReplyTo":"1352768608-20703-1-git-send-email-felipe.contreras@gmail.com","subject":"[PATCH 1/2] remote-bzr: add support for older versions of bzr","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2012-11-13T01:03:27Z","receivedAt":"2012-11-13T01:03:27Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"At least as old as 2.0.\n\nSigned-off-by: Felipe Contreras <felipe.contreras@gmail.com>\n---\n contrib/remote-helpers/git-remote-bzr | 14 +++++++++-----\n 1 file changed, 9 insertions(+), 5 deletions(-)\n\ndiff --git a/contrib/remote-helpers/git-remote-bzr b/contrib/remote-helpers/git-remote-bzr\nindex f8919f4..6cdfac6 100755\n--- a/contrib/remote-helpers/git-remote-bzr\n+++ b/contrib/remote-helpers/git-remote-bzr\n@@ -17,7 +17,8 @@\n import sys\n \n import bzrlib\n-bzrlib.initialize()\n+if hasattr(bzrlib, \"initialize\"):\n+    bzrlib.initialize()\n \n import bzrlib.plugin\n bzrlib.plugin.load_plugins()\n@@ -553,7 +554,7 @@ def parse_commit(parser):\n \n     repo.lock_write()\n     try:\n-        builder = repo.get_commit_builder(parents, None, date, tz, committer, props, revid, False)\n+        builder = repo.get_commit_builder(parents, None, date, tz, committer, props, revid)\n         try:\n             list(builder.record_iter_changes(mtree, mtree.last_revision(), changes))\n             builder.finish_inventory()\n@@ -612,7 +613,10 @@ def do_export(parser):\n         if ref == 'refs/heads/master':\n             repo.generate_revision_history(revid, marks.get_tip('master'))\n             revno, revid = repo.last_revision_info()\n-            peer.import_last_revision_info_and_tags(repo, revno, revid)\n+            if hasattr(peer, \"import_last_revision_info_and_tags\"):\n+                peer.import_last_revision_info_and_tags(repo, revno, revid)\n+            else:\n+                peer.import_last_revision_info(repo.repository, revno, revid)\n             wt = peer.bzrdir.open_workingtree()\n             wt.update()\n         print \"ok %s\" % ref\n@@ -646,12 +650,12 @@ def get_repo(url, alias):\n     global dirname, peer\n \n     clone_path = os.path.join(dirname, 'clone')\n-    origin = bzrlib.controldir.ControlDir.open(url)\n+    origin = bzrlib.bzrdir.BzrDir.open(url)\n     remote_branch = origin.open_branch()\n \n     if os.path.exists(clone_path):\n         # pull\n-        d = bzrlib.controldir.ControlDir.open(clone_path)\n+        d = bzrlib.bzrdir.BzrDir.open(clone_path)\n         branch = d.open_branch()\n         result = branch.pull(remote_branch, [], None, False)\n     else:\n-- \n1.8.0\n"},{"id":"203034","messageId":"1352768608-20703-3-git-send-email-felipe.contreras@gmail.com","threadId":"32094","inReplyTo":"1352768608-20703-1-git-send-email-felipe.contreras@gmail.com","subject":"[PATCH 2/2] remote-bzr: detect local repositories","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2012-11-13T01:03:28Z","receivedAt":"2012-11-13T01:03:28Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"So we don't create a clone  unnecessarily.\n\nSigned-off-by: Felipe Contreras <felipe.contreras@gmail.com>\n---\n contrib/remote-helpers/git-remote-bzr | 48 ++++++++++++++++++++---------------\n 1 file changed, 28 insertions(+), 20 deletions(-)\n\ndiff --git a/contrib/remote-helpers/git-remote-bzr b/contrib/remote-helpers/git-remote-bzr\nindex 6cdfac6..c5822e4 100755\n--- a/contrib/remote-helpers/git-remote-bzr\n+++ b/contrib/remote-helpers/git-remote-bzr\n@@ -24,6 +24,7 @@ import bzrlib.plugin\n bzrlib.plugin.load_plugins()\n \n import bzrlib.generate_ids\n+import bzrlib.transport\n \n import sys\n import os\n@@ -613,11 +614,14 @@ def do_export(parser):\n         if ref == 'refs/heads/master':\n             repo.generate_revision_history(revid, marks.get_tip('master'))\n             revno, revid = repo.last_revision_info()\n-            if hasattr(peer, \"import_last_revision_info_and_tags\"):\n-                peer.import_last_revision_info_and_tags(repo, revno, revid)\n+            if peer:\n+                if hasattr(peer, \"import_last_revision_info_and_tags\"):\n+                    peer.import_last_revision_info_and_tags(repo, revno, revid)\n+                else:\n+                    peer.import_last_revision_info(repo.repository, revno, revid)\n+                wt = peer.bzrdir.open_workingtree()\n             else:\n-                peer.import_last_revision_info(repo.repository, revno, revid)\n-            wt = peer.bzrdir.open_workingtree()\n+                wt = repo.bzrdir.open_workingtree()\n             wt.update()\n         print \"ok %s\" % ref\n     print\n@@ -649,24 +653,28 @@ def do_list(parser):\n def get_repo(url, alias):\n     global dirname, peer\n \n-    clone_path = os.path.join(dirname, 'clone')\n     origin = bzrlib.bzrdir.BzrDir.open(url)\n-    remote_branch = origin.open_branch()\n-\n-    if os.path.exists(clone_path):\n-        # pull\n-        d = bzrlib.bzrdir.BzrDir.open(clone_path)\n-        branch = d.open_branch()\n-        result = branch.pull(remote_branch, [], None, False)\n+    branch = origin.open_branch()\n+\n+    if not isinstance(origin.transport, bzrlib.transport.local.LocalTransport):\n+        clone_path = os.path.join(dirname, 'clone')\n+        remote_branch = branch\n+        if os.path.exists(clone_path):\n+            # pull\n+            d = bzrlib.bzrdir.BzrDir.open(clone_path)\n+            branch = d.open_branch()\n+            result = branch.pull(remote_branch, [], None, False)\n+        else:\n+            # clone\n+            d = origin.sprout(clone_path, None,\n+                    hardlink=True, create_tree_if_local=False,\n+                    source_branch=remote_branch)\n+            branch = d.open_branch()\n+            branch.bind(remote_branch)\n+\n+        peer = remote_branch\n     else:\n-        # clone\n-        d = origin.sprout(clone_path, None,\n-                hardlink=True, create_tree_if_local=False,\n-                source_branch=remote_branch)\n-        branch = d.open_branch()\n-        branch.bind(remote_branch)\n-\n-    peer = remote_branch\n+        peer = None\n \n     return branch\n \n-- \n1.8.0\n"}]}