On 2019-09-03 03:01 +0200, Guillem Jover wrote:
> Source: breezy
> Source-Version: 3.0.1-3
> Severity: wishlist
>
> I see upstream contains a git-remote-bzr program, but it's not
> currently being installed(?). With the removal of the git-remote-bzr
> binary package, and the transition away from bazaar (and the dummy
> bzr-git which has stopped providing its own git-remote-bzr) it would
> be really nice if breeze could ship its variant somewhere. My
> preference would be to takeover the git-remote-bzr binary package
> name so that we get a smooth transition (which AFAIR might cause no
> trip via NEW processing?), and a less confusing package name than
> the previous bzr-git.
The patch below creates such a git-remote-bzr package:
diff --git a/debian/control b/debian/control
index 01ebb66..0f40571 100644
--- a/debian/control
+++ b/debian/control
@@ -114,3 +114,19 @@ Description: easy to use distributed version control system (documentation)
and easily extendable.
.
This package provides the documentation.
+
+Package: git-remote-bzr
+Architecture: all
+Multi-Arch: foreign
+Depends: git,
+ python3-breezy (<= ${source:Version}.1~),
+ python3-breezy (>= ${source:Version}),
+ ${misc:Depends},
+ ${python3:Depends}
+Suggests: git-doc, brz
+Replaces: bzr-git (<< 0.6.13+bzr1650+brz1~)
+Breaks: bzr-git (<< 0.6.13+bzr1650+brz1~)
+Description: bidirectional bridge between Git and Bazaar
+ This package provides the bzr remote helper, which allows Git to
+ read from and write to Bazaar repositories as though they were remote
+ Git repositories.
diff --git a/debian/git-remote-bzr.install b/debian/git-remote-bzr.install
new file mode 100644
index 0000000..a7dc8c0
--- /dev/null
+++ b/debian/git-remote-bzr.install
@@ -0,0 +1,4 @@
+debian/python3-breezy/usr/bin/git-remote-bzr usr/bin
+debian/python3-breezy/usr/bin/bzr-receive-pack usr/bin
+debian/python3-breezy/usr/bin/bzr-upload-pack usr/bin
+debian/python3-breezy/usr/man/man1/git-remote-bzr.1 usr/share/man/man1
Unfortunately, at least with breezy 3.0.1 it does not actually work. :-(
Here is what I got trying to clone a random repository:
,----
| $ git clone bzr::https://code.launchpad.net/~clint-fewbar/pipemeter/packaging
| Cloning into 'packaging'...
| warning: this remote helper should implement refspec capability
| Traceback (most recent call last):
| File "/usr/lib/python3/dist-packages/breezy/git/git_remote_helper.py", line
117, in cmd_list
| repo = self.remote_dir.find_repository()
| File "/usr/lib/python3/dist-packages/breezy/bzr/bzrdir.py", line 589, in
find_repository
| raise errors.NoRepositoryPresent(self)
| breezy.errors.NoRepositoryPresent: No repository present:
"https://code.launchpad.net/~clint-fewbar/pipemeter/packaging/"
|
| During handling of the above exception, another exception occurred:
|
| Traceback (most recent call last):
| File "/usr/bin/git-remote-bzr", line 52, in <module>
| helper.process(sys.stdin.buffer, sys.stdout.buffer)
| File "/usr/lib/python3/dist-packages/breezy/git/git_remote_helper.py", line
171, in process
| self.process_line(line, outf)
| File "/usr/lib/python3/dist-packages/breezy/git/git_remote_helper.py", line
189, in process_line
| self.commands[argv[0].decode()](self, outf, argv)
| File "/usr/lib/python3/dist-packages/breezy/git/git_remote_helper.py", line
119, in cmd_list
| repo = self.remote_dir.create_repository()
| File "/usr/lib/python3/dist-packages/breezy/bzr/bzrdir.py", line 912, in
create_repository
| return self._format.repository_format.initialize(self, shared)
| File "/usr/lib/python3/dist-packages/breezy/bzr/pack_repo.py", line 1909,
in initialize
| a_controldir, dirs, files, utf8_files, shared)
| File "/usr/lib/python3/dist-packages/breezy/bzr/repository.py", line 135,
in _upload_blank_content
| control_files = self._create_control_files(a_bzrdir)
| File "/usr/lib/python3/dist-packages/breezy/bzr/repository.py", line 127,
in _create_control_files
| repository_transport = a_bzrdir.get_repository_transport(self)
| File "/usr/lib/python3/dist-packages/breezy/bzr/bzrdir.py", line 1017, in
get_repository_transport
| self.transport.mkdir('repository', mode=self._get_mkdir_mode())
| File "/usr/lib/python3/dist-packages/breezy/transport/http/__init__.py",
line 456, in mkdir
| raise errors.TransportNotPossible('http does not support mkdir()')
| breezy.errors.TransportNotPossible: Transport operation not possible: http
does not support mkdir()
`----
Maybe it would be better to try and revive the original git-remote-bzr
package? Paul Wise has attempted to port it to Python3[1], but I don't
know how far he got.
Cheers,
Sven
1. https://github.com/pabs3/git-remote-bzr/tree/python3