Merge from 0.3 branch
authorJelmer Vernooij <jelmer@samba.org>
Tue, 13 Mar 2007 00:24:03 +0000 (01:24 +0100)
committerJelmer Vernooij <jelmer@samba.org>
Tue, 13 Mar 2007 00:24:03 +0000 (01:24 +0100)
15 files changed:
1  2 
AUTHORS
NEWS
TODO
branch.py
checkout.py
commit.py
convert.py
fetch.py
fileids.py
logwalker.py
repository.py
tests/test_fileids.py
tests/test_repos.py
tests/test_workingtree.py
tree.py

diff --cc AUTHORS
Simple merge
diff --cc NEWS
index fa9b6d55d62b9541239aba1816499f469c1ef551,211e1d731e9485d020e00304011d27c74da73529..b04c5f1b80b523e7332ba4f4d8d536d47ff7fa01
--- 1/NEWS
--- 2/NEWS
+++ b/NEWS
@@@ -2,34 -2,15 +2,41 @@@ bzr-svn 0.4   UNRELEASE
  
    BUG FIXES
  
 -  * Fix compatibility with Bazaar 0.15.
 +   * Non-ascii characters in file ids are now supported (fixes imports 
 +     of the Python repository).
 +
 +   * Fixed error raised during version incompatibility. (Wouter van Heyst, 
 +                                                         #80467)
 +
 +   * Implemented Repository.get_revision_graph(None)
 +
 +   * svn-import will no longer spin using CPU if the target directory 
 +     did not exist (#80223).
 +
 +   * Remove branches when they are being replaced. Fixes DivergedBranches 
 +     error when using svn-import (#81908).
 +
 +  IMPROVEMENTS
 +
 +   * A proper warning will now be printed if no sqlite implementation is 
 +     available.
 +
 +   * Working tree copies will be disabled if the version of python-subversion 
 +     is too old.
 +
 +  PERFORMANCE
 +
 +   * do_update() is now used to find the contents of a directory recursively. 
 +     This should reduce the number of roundtrips significantly when 
 +       finding file id mappings.
  
+   * Check for parent paths moving as well in LogWalker.find_latest_change(). 
+     Fixes #84087.
+   * Handle unicode characters in commit messages. Fixes #85551.
+   * Handle unicode characters in filenames (#54736)
  bzr-svn 0.3.1 2007-01-31
  
    BUG FIXES
diff --cc TODO
index 2dbb3709c5e7dabece4d65c2305a953a1f1777b0,47fb180868f5f022bfe9c5861874c66901511718..917f2075ad80fbba8a856be614bc92a913c70e0c
--- 1/TODO
--- 2/TODO
+++ b/TODO
@@@ -15,4 -16,5 +15,6 @@@
  - support multiple branching schemes per repository
  - more efficient implementation for applying txdeltas to weaves. perhaps convert svn deltas to bzr deltas?
  - free memory!
 +- implement BzrDirFormat.get_converter()
+ - report changes to delta editor in Branch.pull()
+ - add tests for objects returned by WorkingTree.pull(), Branch.pull()
diff --cc branch.py
Simple merge
diff --cc checkout.py
Simple merge
diff --cc commit.py
Simple merge
diff --cc convert.py
index a6f23b7126e5a1d93dd940b5748733e54de16691,eafc4933e5d5de8f42925714c72c011290999ff0..5ada85161bf5304cdf2b4b2ea08d086f617b6ced
@@@ -1,9 -1,7 +1,5 @@@
 -#!/usr/bin/env python2.4
 -#
  # Copyright (C) 2005-2006 by Jelmer Vernooij
  # 
- # Early versions based on svn2bzr
- # Copyright (C) 2005 by Canonical Ltd
- # Written by Gustavo Niemeyer <gustavo@niemeyer.net>
- #
  # This program is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
  # the Free Software Foundation; either version 2 of the License, or
diff --cc fetch.py
Simple merge
diff --cc fileids.py
Simple merge
diff --cc logwalker.py
Simple merge
diff --cc repository.py
index ddd6deb6e06c2b8e4e65436804036a4994feb811,821d2d2d9a269ccee936f357ea6440a09af5e35e..bcbc72813d1d63f29bf5455430eb4c1134d0d261
@@@ -101,8 -111,7 +101,8 @@@ def generate_svn_revision_id(uuid, revn
      assert revnum >= 0
      if revnum == 0:
          return NULL_REVISION
-     return unicode("%s%s:%s:%s:%d" % (REVISION_ID_PREFIX, scheme, uuid, \
-                    escape_svn_path(path.strip("/")), revnum))
 -    return "%s%d@%s-%s" % (REVISION_ID_PREFIX, revnum, uuid, escape_svn_path(path.strip("/")))
++    return "%s%s:%s:%s:%d" % (REVISION_ID_PREFIX, scheme, uuid, \
++                   escape_svn_path(path.strip("/")), revnum)
  
  
  def svk_feature_to_revision_id(feature):
index efde5280a270757cc43b8e605c5711136a2e74f0,0d6010f09a6d0c067e37986d1d2b46f89912ac8d..21f23f14f04f32deee526b2b904150c7aec05cb0
@@@ -161,13 -161,26 +161,30 @@@ class TestFileIdGenerator(TestCase)
  
      def test_generate_file_id_long(self):
          dir = "this/is/a" + ("/very"*40) + "/long/path/"
 -        self.assertEqual("svn-v2:2@uuid-bp-" + sha1(dir) + "-filename", 
 -                         generate_file_id("svn-v2:2@uuid-bp", dir+"filename"))
 +        self.assertEqual("2@uuid:bp;" + sha1(dir+"filename"), 
 +                generate_file_id(generate_svn_revision_id("uuid", 2, "bp"), dir+"filename"))
 +
 +    def test_generate_revid_special_char_ascii(self):
 +        self.assertEqual("2@uuid:bp:mypath%2C%8A", 
 +                generate_file_id(generate_svn_revision_id("uuid", 2, "bp"), "mypath\x2c\x8a"))
  
+     def test_generate_file_id_special_char(self):
+         self.assertEqual(u"svn-v2:2@uuid-bp-mypath\x2c\x8a".encode("utf-8"), 
+                          generate_file_id("svn-v2:2@uuid-bp", u"mypath\x2c\x8a"))
+     def test_generate_svn_file_id(self):
+         self.assertEqual("svn-v2:2@uuid-bp-path", 
+                 generate_svn_file_id("uuid", 2, "bp", "path"))
+     def test_generate_svn_file_id_nordic(self):
+         self.assertEqual("svn-v2:2@uuid-bp-\xc3\xa6\xc3\xb8\xc3\xa5", 
+                 generate_svn_file_id("uuid", 2, "bp", u"\xe6\xf8\xe5"))
+     def test_generate_svn_file_id_nordic_branch(self):
+         self.assertEqual("svn-v2:2@uuid-\xc3\xa6-\xc3\xa6\xc3\xb8\xc3\xa5", 
+                 generate_svn_file_id("uuid", 2, u"\xe6", u"\xe6\xf8\xe5"))
  class TestFileMapping(TestCase):
      def apply_mappings(self, mappings, find_children=None, renames={}):
          map = {}
index 9fe4629dc3fc2f2f9686afa4a23b699200c16cad,a3e1d91b7d21a0686d8f382c203d70e20a70a784..de26a2a71d440663184f502648103096fce2b5d5
@@@ -1931,9 -2001,13 +2021,13 @@@ class RevisionIdMappingTest(TestCase)
                           generate_svn_revision_id("myuuid", 5, u"branch\x2c"))
  
      def test_generate_revid_special_char_ascii(self):
 -        self.assertEqual("svn-v%d:5@myuuid-branch\x2c" % MAPPING_VERSION, 
 +        self.assertEqual("svn-v%d-undefined:myuuid:branch%%2C:5" % MAPPING_VERSION, 
                           generate_svn_revision_id("myuuid", 5, "branch\x2c"))
  
+     def test_generate_revid_nordic(self):
+         self.assertEqual("svn-v%d:5@myuuid-branch\xc3\xa6" % MAPPING_VERSION, 
+                          generate_svn_revision_id("myuuid", 5, u"branch\xe6"))
      def test_parse_revid_simple(self):
          self.assertEqual(("uuid", "", 4),
                           parse_svn_revision_id(
Simple merge
diff --cc tree.py
Simple merge