Hello community,

here is the log from the commit of package breezy for openSUSE:Factory checked 
in at 2020-09-04 10:58:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/breezy (Old)
 and      /work/SRC/openSUSE:Factory/.breezy.new.3399 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "breezy"

Fri Sep  4 10:58:56 2020 rev:4 rq:829985 version:3.1.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/breezy/breezy.changes    2020-06-21 
19:44:58.252617592 +0200
+++ /work/SRC/openSUSE:Factory/.breezy.new.3399/breezy.changes  2020-09-04 
11:00:06.158655202 +0200
@@ -1,0 +2,8 @@
+Thu Aug 27 11:42:03 UTC 2020 - Antonio Larrosa <[email protected]>
+
+- Patches from upstream to build with Dulwich 0.20.5:
+  * 7551_7550.diff
+  * 0001-Fix-tests-with-newer-dulwich.patch
+  * 0002-Fix-more-tests.patch
+
+-------------------------------------------------------------------

New:
----
  0001-Fix-tests-with-newer-dulwich.patch
  0002-Fix-more-tests.patch
  7551_7550.diff

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ breezy.spec ++++++
--- /var/tmp/diff_new_pack.8kD6LM/_old  2020-09-04 11:00:08.038656209 +0200
+++ /var/tmp/diff_new_pack.8kD6LM/_new  2020-09-04 11:00:08.042656211 +0200
@@ -26,6 +26,13 @@
 # PATCH-FIX-UPSTREAM 7531_7530.diff lp#1882589 [email protected]
 # Fix handling of a particular kind of broken committer id
 Patch1:         7531_7530.diff
+# PATCH-FIX-UPSTREAM 7551_7550.diff lp#1890354 [email protected]
+# Add support for new push interface in Dulwich >= 0.20.4
+Patch2:         7551_7550.diff
+# PATCH-FIX-UPSTREAM 0001-Fix-tests-with-newer-dulwich.patch lp#1890354 
[email protected]
+Patch3:         0001-Fix-tests-with-newer-dulwich.patch
+# PATCH-FIX-UPSTREAM 0002-Fix-more-tests.patch lp#1890354 [email protected]
+Patch4:         0002-Fix-more-tests.patch
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
 BuildRequires:  python3-devel

++++++ 0001-Fix-tests-with-newer-dulwich.patch ++++++
>From 95b8f15629d6328f7c1bdf41ea3a764cccec9852 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jelmer=20Vernoo=C4=B3?= <[email protected]>
Date: Wed, 10 Jun 2020 23:49:54 +0000
Subject: [PATCH] Fix tests with newer dulwich.

---
 breezy/git/tests/test_remote.py | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/breezy/git/tests/test_remote.py b/breezy/git/tests/test_remote.py
index 8f3bf0c770..9f1bcd3d62 100644
--- a/breezy/git/tests/test_remote.py
+++ b/breezy/git/tests/test_remote.py
@@ -151,7 +151,7 @@ class ParseHangupTests(TestCase):
     def setUp(self):
         super(ParseHangupTests, self).setUp()
         try:
-            HangupException(['foo'])
+            HangupException([b'foo'])
         except TypeError:
             self.skipTest('dulwich version too old')
 
@@ -162,18 +162,18 @@ def test_not_set(self):
     def test_single_line(self):
         self.assertEqual(
             RemoteGitError('foo bar'),
-            parse_git_hangup('http://', HangupException(['foo bar'])))
+            parse_git_hangup('http://', HangupException([b'foo bar'])))
 
     def test_multi_lines(self):
         self.assertEqual(
             RemoteGitError('foo bar\nbla bla'),
             parse_git_hangup(
-                'http://', HangupException(['foo bar', 'bla bla'])))
+                'http://', HangupException([b'foo bar', b'bla bla'])))
 
     def test_filter_boring(self):
         self.assertEqual(
             RemoteGitError('foo bar'), parse_git_hangup('http://', 
HangupException(
-                ['=======', 'foo bar', '======'])))
+                [b'=======', b'foo bar', b'======'])))
 
     def test_permission_denied(self):
         self.assertEqual(
@@ -181,8 +181,8 @@ def test_permission_denied(self):
             parse_git_hangup(
                 'http://',
                 HangupException(
-                    ['=======',
-                     'You are not allowed to push code to this project.', '', 
'======'])))
+                    [b'=======',
+                     b'You are not allowed to push code to this project.', 
b'', b'======'])))
 
 
 class TestRemoteGitBranchFormat(TestCase):
++++++ 0002-Fix-more-tests.patch ++++++
>From e2ff1acbe2db9a69227406ea100a7394d6d201c0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jelmer=20Vernoo=C4=B3?= <[email protected]>
Date: Thu, 11 Jun 2020 00:45:23 +0000
Subject: [PATCH] Fix more tests.

---
 breezy/git/remote.py | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/breezy/git/remote.py b/breezy/git/remote.py
index 29256e1b91..f151dc1ca5 100644
--- a/breezy/git/remote.py
+++ b/breezy/git/remote.py
@@ -232,11 +232,13 @@ def parse_git_hangup(url, e):
         return e
     interesting_lines = [
         line for line in stderr_lines
-        if line and line.replace('=', '')]
+        if line and line.replace(b'=', b'')]
     if len(interesting_lines) == 1:
         interesting_line = interesting_lines[0]
-        return parse_git_error(url, interesting_line)
-    return RemoteGitError('\n'.join(stderr_lines))
+        return parse_git_error(
+            url, interesting_line.decode('utf-8', 'surrogateescape'))
+    return RemoteGitError(
+        b'\n'.join(stderr_lines).decode('utf-8', 'surrogateescape'))
 
 
 class GitSmartTransport(Transport):
++++++ 7551_7550.diff ++++++
=== modified file 'breezy/git/branch.py'
--- a/breezy/git/branch.py      2020-05-06 00:45:15 +0000
+++ b/breezy/git/branch.py      2020-06-21 02:49:35 +0000
@@ -137,6 +137,7 @@
         updates = {}
         conflicts = []
         source_tag_refs = self.source.branch.get_tag_refs()
+        ref_to_tag_map = {}
 
         def get_changed_refs(old_refs):
             ret = dict(old_refs)
@@ -150,6 +151,7 @@
                     ret[ref_name] = unpeeled
                     updates[tag_name] = 
self.target.branch.repository.lookup_foreign_revision_id(
                         peeled)
+                    ref_to_tag_map[ref_name] = tag_name
                     self.target.branch._tag_refs = None
                 else:
                     conflicts.append(
@@ -158,8 +160,14 @@
                          
self.target.branch.repository.lookup_foreign_revision_id(
                              old_refs[ref_name])))
             return ret
-        self.target.branch.repository.controldir.send_pack(
+        result = self.target.branch.repository.controldir.send_pack(
             get_changed_refs, lambda have, want: [])
+        if result is not None and not isinstance(result, dict):
+            for ref, error in result.ref_status.items():
+                if error:
+                    warning('unable to update ref %s: %s',
+                            ref, error)
+                    del updates[ref_to_tag_map[ref]]
         return updates, set(conflicts)
 
 
@@ -1170,6 +1178,7 @@
                 isinstance(target, RemoteGitBranch))
 
     def _basic_push(self, overwrite, stop_revision, tag_selector=None):
+        from .remote import RemoteGitError
         result = GitBranchPushResult()
         result.source_branch = self.source
         result.target_branch = self.target
@@ -1201,9 +1210,17 @@
                     continue
                 refs[tag_name_to_ref(name)] = sha
             return refs
-        self.target.repository.send_pack(
+        dw_result = self.target.repository.send_pack(
             get_changed_refs,
             self.source.repository._git.generate_pack_data)
+        if dw_result is not None and not isinstance(dw_result, dict):
+            error = dw_result.ref_status.get(self.target.ref)
+            if error:
+                raise RemoteGitError(error)
+            for ref, error in dw_result.ref_status.items():
+                if error:
+                    trace.warning('unable to open ref %s: %s',
+                                  ref, error)
         return result
 
 

=== modified file 'breezy/git/interrepo.py'
--- a/breezy/git/interrepo.py   2020-02-18 03:11:01 +0000
+++ b/breezy/git/interrepo.py   2020-06-21 02:49:35 +0000
@@ -90,6 +90,7 @@
     )
 from .remote import (
     RemoteGitRepository,
+    RemoteGitError,
     )
 from .unpeel_map import (
     UnpeelMap,
@@ -377,8 +378,16 @@
             return ret
         self._warn_slow()
         with self.source_store.lock_read():
-            new_refs = self.target.send_pack(
+            result = self.target.send_pack(
                 git_update_refs, self.source_store.generate_lossy_pack_data)
+            if result is not None and not isinstance(result, dict):
+                for ref, error in result.ref_status.items():
+                    if error:
+                        raise RemoteGitError(
+                            'unable to update ref %r: %s' % (ref, error))
+                new_refs = result.refs
+            else:  # dulwich < 0.20.3
+                new_refs = result
         # FIXME: revidmap?
         return revidmap, self.old_refs, new_refs
 

=== modified file 'breezy/git/remote.py'
--- a/breezy/git/remote.py      2020-06-12 17:44:18 +0000
+++ b/breezy/git/remote.py      2020-06-21 02:49:35 +0000
@@ -441,10 +441,10 @@
                 format=(format.encode('ascii') if format else None),
                 subdirs=subdirs,
                 prefix=(prefix.encode('utf-8') if prefix else None))
+        except HangupException as e:
+            raise parse_git_hangup(self.transport.external_url(), e)
         except GitProtocolError as e:
             raise parse_git_error(self.transport.external_url(), e)
-        except HangupException as e:
-            raise parse_git_hangup(self.transport.external_url(), e)
         finally:
             if pb is not None:
                 pb.finished()
@@ -465,10 +465,10 @@
             self._refs = remote_refs_dict_to_container(
                 result.refs, result.symrefs)
             return result
+        except HangupException as e:
+            raise parse_git_hangup(self.transport.external_url(), e)
         except GitProtocolError as e:
             raise parse_git_error(self.transport.external_url(), e)
-        except HangupException as e:
-            raise parse_git_hangup(self.transport.external_url(), e)
         finally:
             if pb is not None:
                 pb.finished()
@@ -488,10 +488,10 @@
             return self._client.send_pack(
                 self._client_path, get_changed_refs_wrapper,
                 generate_pack_data, progress)
+        except HangupException as e:
+            raise parse_git_hangup(self.transport.external_url(), e)
         except GitProtocolError as e:
             raise parse_git_error(self.transport.external_url(), e)
-        except HangupException as e:
-            raise parse_git_hangup(self.transport.external_url(), e)
         finally:
             if pb is not None:
                 pb.finished()
@@ -520,7 +520,11 @@
 
         def generate_pack_data(have, want, ofs_delta=False):
             return pack_objects_to_data([])
-        self.send_pack(get_changed_refs, generate_pack_data)
+        result = self.send_pack(get_changed_refs, generate_pack_data)
+        if result is not None and not isinstance(result, dict):
+            error = result.ref_status.get(refname)
+            if error:
+                raise RemoteGitError(error)
 
     @property
     def user_url(self):
@@ -663,7 +667,18 @@
                 else:
                     return source_store.generate_pack_data(
                         have, want, progress=progress, ofs_delta=ofs_delta)
-            new_refs = self.send_pack(get_changed_refs, generate_pack_data)
+            dw_result = self.send_pack(get_changed_refs, generate_pack_data)
+            if not isinstance(dw_result, dict):
+                new_refs = dw_result.refs
+                error = dw_result.ref_status.get(actual_refname)
+                if error:
+                    raise RemoteGitError(error)
+                for ref, error in dw_result.ref_status.items():
+                    if error:
+                        trace.warning('unable to open ref %s: %s',
+                                      ref, error)
+            else:  # dulwich < 0.20.4
+                new_refs = dw_result
         push_result.new_revid = repo.lookup_foreign_revision_id(
             new_refs[actual_refname])
         if old_sha is not None:
@@ -982,7 +997,12 @@
 
         def generate_pack_data(have, want, ofs_delta=False):
             return pack_objects_to_data([])
-        self.repository.send_pack(get_changed_refs, generate_pack_data)
+        result = self.repository.send_pack(
+            get_changed_refs, generate_pack_data)
+        if result and not isinstance(result, dict):
+            error = result.ref_status.get(ref)
+            if error:
+                raise RemoteGitError(error)
 
 
 class RemoteGitBranch(GitBranch):
@@ -1066,7 +1086,12 @@
             return {self.ref: sha}
         def generate_pack_data(have, want, ofs_delta=False):
             return pack_objects_to_data([])
-        self.repository.send_pack(get_changed_refs, generate_pack_data)
+        result = self.repository.send_pack(
+            get_changed_refs, generate_pack_data)
+        if result is not None and not isinstance(result, dict):
+            error = result.ref_status.get(self.ref)
+            if error:
+                raise RemoteGitError(error)
         self._sha = sha
 
 


Reply via email to