Support plain strings as refspec arguments to dulwich.porcelain.push.
authorJelmer Vernooij <jelmer@jelmer.uk>
Sun, 23 Dec 2018 23:48:32 +0000 (23:48 +0000)
committerJelmer Vernooij <jelmer@jelmer.uk>
Sun, 23 Dec 2018 23:48:32 +0000 (23:48 +0000)
NEWS
dulwich/objectspec.py
dulwich/tests/test_objectspec.py

diff --git a/NEWS b/NEWS
index a55fb97cea44d96c0e6186324c69964fbbd7d45f..187e5fdd3dce6183295ed3f5f349577f950cf6ce 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -12,6 +12,9 @@
    applicable. Required for 3.8 compatibility.
    (Jelmer Vernooij)
 
+ * Support plain strings as refspec arguments to
+   ``dulwich.porcelain.push``. (Jelmer Vernooij)
+
  BUG FIXES
 
  *  Handle invalid ref that pretends to be a sub-folder under a valid ref.
index 8edf7da25f6ef18fb78351dde3096f22cf7b9e23..1e6fb93c888d09d9fc907701486d29272b651121 100644 (file)
@@ -87,12 +87,12 @@ def parse_reftuple(lh_container, rh_container, refspec):
     :return: A tuple with left and right ref
     :raise KeyError: If one of the refs can not be found
     """
+    refspec = to_bytes(refspec)
     if refspec.startswith(b"+"):
         force = True
         refspec = refspec[1:]
     else:
         force = False
-    refspec = to_bytes(refspec)
     if b":" in refspec:
         (lh, rh) = refspec.split(b":")
     else:
index ce7e13014b0a92edab7c7212d6c72626ad660573..baedc61b17fd62063702b35b2f91a5f8df13c46a 100644 (file)
@@ -174,6 +174,11 @@ class ParseReftupleTests(TestCase):
         self.assertEqual((b"refs/heads/foo", None, False),
                          parse_reftuple(r, r, b"refs/heads/foo:"))
 
+    def test_default_with_string(self):
+        r = {b"refs/heads/foo": "bla"}
+        self.assertEqual((b"refs/heads/foo", b"refs/heads/foo", False),
+                         parse_reftuple(r, r, "foo"))
+
 
 class ParseReftuplesTests(TestCase):