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

Reply via email to