Rev 4218: Merge bzr.dev at 4219 in file:///home/vila/src/bzr/experimental/gc-py-bbc/
Vincent Ladeuil
v.ladeuil+lp at free.fr
Tue Mar 31 08:42:16 BST 2009
At file:///home/vila/src/bzr/experimental/gc-py-bbc/
------------------------------------------------------------
revno: 4218 [merge]
revision-id: v.ladeuil+lp at free.fr-20090331074216-yxfi6sra7nh61v09
parent: v.ladeuil+lp at free.fr-20090330121449-ug1ir4sezjr9rem3
parent: pqm at pqm.ubuntu.com-20090331055149-vjdpx8awxkxema5i
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: bbc
timestamp: Tue 2009-03-31 09:42:16 +0200
message:
Merge bzr.dev at 4219
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/log.py log.py-20050505065812-c40ce11702fe5fb1
bzrlib/plugins/launchpad/__init__.py __init__.py-20060315182712-2d5feebd2a1032dc
bzrlib/tests/blackbox/test_log.py test_log.py-20060112090212-78f6ea560c868e24
bzrlib/tests/test_diff.py testdiff.py-20050727164403-d1a3496ebb12e339
bzrlib/tests/test_log.py testlog.py-20050728115707-1a514809d7d49309
bzrlib/workingtree.py workingtree.py-20050511021032-29b6ec0a681e02e3
bzrlib/workingtree_4.py workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
-------------- next part --------------
=== modified file 'NEWS'
--- a/NEWS 2009-03-30 12:14:49 +0000
+++ b/NEWS 2009-03-31 07:42:16 +0000
@@ -194,6 +194,10 @@
module documentation for ``bzrlib.smart.request`` for details.
(Andrew Bennetts, Robert Collins)
+* ``Tree.get_symlink_target`` now always returns a unicode string result
+ or None. Previously it would return the bytes from reading the link
+ which could be in any arbitrary encoding. (Robert Collins)
+
Testing
*******
=== modified file 'bzrlib/log.py'
--- a/bzrlib/log.py 2009-03-30 03:09:30 +0000
+++ b/bzrlib/log.py 2009-03-30 05:47:29 +0000
@@ -279,7 +279,6 @@
'diff_type': diff_type,
# Add 'private' attributes for features that may be deprecated
'_match_using_deltas': _match_using_deltas,
- '_allow_single_merge_revision': True,
}
@@ -348,9 +347,6 @@
rqst['delta_type'] = None
if not getattr(lf, 'supports_diff', False):
rqst['diff_type'] = None
- if not getattr(lf, 'supports_merge_revisions', False):
- rqst['_allow_single_merge_revision'] = getattr(lf,
- 'supports_single_merge_revision', False)
# Find and print the interesting revisions
generator = self._generator_factory(self.branch, rqst)
@@ -454,7 +450,6 @@
rqst.get('limit') or self.start_rev_id or self.end_rev_id)
view_revisions = _calc_view_revisions(self.branch, self.start_rev_id,
self.end_rev_id, rqst.get('direction'), generate_merge_revisions,
- rqst.get('_allow_single_merge_revision'),
delayed_graph_generation=delayed_graph_generation)
# Apply the other filters
@@ -469,8 +464,7 @@
# filter_revisions_touching_file_id() requires them ...
rqst = self.rqst
view_revisions = _calc_view_revisions(self.branch, self.start_rev_id,
- self.end_rev_id, rqst.get('direction'), True,
- rqst.get('_allow_single_merge_revision'))
+ self.end_rev_id, rqst.get('direction'), True)
if not isinstance(view_revisions, list):
view_revisions = list(view_revisions)
view_revisions = _filter_revisions_touching_file_id(self.branch,
@@ -481,8 +475,7 @@
def _calc_view_revisions(branch, start_rev_id, end_rev_id, direction,
- generate_merge_revisions, allow_single_merge_revision,
- delayed_graph_generation=False):
+ generate_merge_revisions, delayed_graph_generation=False):
"""Calculate the revisions to view.
:return: An iterator of (revision_id, dotted_revno, merge_depth) tuples OR
@@ -496,8 +489,7 @@
generate_single_revision = (end_rev_id and start_rev_id == end_rev_id and
(not generate_merge_revisions or not _has_merges(branch, end_rev_id)))
if generate_single_revision:
- return _generate_one_revision(branch, end_rev_id, br_rev_id, br_revno,
- allow_single_merge_revision)
+ return _generate_one_revision(branch, end_rev_id, br_rev_id, br_revno)
# If we only want to see linear revisions, we can iterate ...
if not generate_merge_revisions:
@@ -508,20 +500,12 @@
direction, delayed_graph_generation)
-def _generate_one_revision(branch, rev_id, br_rev_id, br_revno,
- allow_single_merge_revision):
+def _generate_one_revision(branch, rev_id, br_rev_id, br_revno):
if rev_id == br_rev_id:
# It's the tip
return [(br_rev_id, br_revno, 0)]
else:
revno = branch.revision_id_to_dotted_revno(rev_id)
- if len(revno) > 1 and not allow_single_merge_revision:
- # It's a merge revision and the log formatter is
- # completely brain dead. This "feature" of allowing
- # log formatters incapable of displaying dotted revnos
- # ought to be deprecated IMNSHO. IGC 20091022
- raise errors.BzrCommandError('Selected log formatter only'
- ' supports mainline revisions.')
revno_str = '.'.join(str(n) for n in revno)
return [(rev_id, revno_str, 0)]
@@ -683,7 +667,7 @@
def calculate_view_revisions(branch, start_revision, end_revision, direction,
- specific_fileid, generate_merge_revisions, allow_single_merge_revision):
+ specific_fileid, generate_merge_revisions):
"""Calculate the revisions to view.
:return: An iterator of (revision_id, dotted_revno, merge_depth) tuples OR
@@ -695,8 +679,7 @@
start_rev_id, end_rev_id = _get_revision_limits(branch, start_revision,
end_revision)
view_revisions = list(_calc_view_revisions(branch, start_rev_id, end_rev_id,
- direction, generate_merge_revisions or specific_fileid,
- allow_single_merge_revision))
+ direction, generate_merge_revisions or specific_fileid))
if specific_fileid:
view_revisions = _filter_revisions_touching_file_id(branch,
specific_fileid, view_revisions,
@@ -1284,18 +1267,13 @@
one (2) should be used.
- supports_merge_revisions must be True if this log formatter supports
- merge revisions. If not, and if supports_single_merge_revision is
- also not True, then only mainline revisions will be passed to the
- formatter.
+ merge revisions. If not, then only mainline revisions will be passed
+ to the formatter.
- preferred_levels is the number of levels this formatter defaults to.
The default value is zero meaning display all levels.
This value is only relevant if supports_merge_revisions is True.
- - supports_single_merge_revision must be True if this log formatter
- supports logging only a single merge revision. This flag is
- only relevant if supports_merge_revisions is not True.
-
- supports_tags must be True if this log formatter supports tags.
Otherwise the tags attribute may not be populated.
=== modified file 'bzrlib/plugins/launchpad/__init__.py'
--- a/bzrlib/plugins/launchpad/__init__.py 2009-03-23 14:59:43 +0000
+++ b/bzrlib/plugins/launchpad/__init__.py 2009-03-30 22:29:16 +0000
@@ -226,6 +226,7 @@
self.outf.write('No Launchpad user ID configured.\n')
return 1
else:
+ name = name.lower()
if check_account:
account.check_lp_login(name)
account.set_lp_login(name)
=== modified file 'bzrlib/tests/blackbox/test_log.py'
--- a/bzrlib/tests/blackbox/test_log.py 2009-03-30 03:09:30 +0000
+++ b/bzrlib/tests/blackbox/test_log.py 2009-03-30 05:47:29 +0000
@@ -495,20 +495,6 @@
branch 1
""")
- def test_merges_nonsupporting_formatter(self):
- # This "feature" of log formatters is madness. If a log
- # formatter cannot display a dotted-revno, it ought to ignore it.
- # Otherwise, a linear sequence is always expected to be handled now.
- raise KnownFailure('log formatters must support linear sequences now')
- self._prepare()
- err_msg = 'Selected log formatter only supports mainline revisions.'
- # The single revision case is tested in the core tests
- # since all standard formatters support single merge revisions.
- out,err = self.run_bzr('log --short -r1..1.1.2', retcode=3)
- self.assertContainsRe(err, err_msg)
- out,err = self.run_bzr('log --short -r1.1.1..1.1.2', retcode=3)
- self.assertContainsRe(err, err_msg)
-
def subst_dates(string):
"""Replace date strings with constant values."""
=== modified file 'bzrlib/tests/test_diff.py'
--- a/bzrlib/tests/test_diff.py 2009-03-23 14:59:43 +0000
+++ b/bzrlib/tests/test_diff.py 2009-03-31 00:12:10 +0000
@@ -704,7 +704,7 @@
r'--- olddir/oldfile.*\n\+\+\+ newdir/newfile.*\n\@\@ -1,1 \+0,0'
' \@\@\n-old\n\n')
self.assertContainsRe(self.differ.to_file.getvalue(),
- "=== target is 'new'\n")
+ "=== target is u'new'\n")
def test_diff_directory(self):
self.build_tree(['new-tree/new-dir/'])
=== modified file 'bzrlib/tests/test_log.py'
--- a/bzrlib/tests/test_log.py 2009-03-30 03:09:30 +0000
+++ b/bzrlib/tests/test_log.py 2009-03-30 05:47:29 +0000
@@ -198,33 +198,6 @@
self.assertEqual('add file1 and file2', logentry.rev.message)
self.checkDelta(logentry.delta, added=['file1', 'file2'])
- def test_merges_nonsupporting_formatter(self):
- """Tests that show_log will raise if the formatter doesn't
- support merge revisions."""
- wt = self.make_branch_and_memory_tree('.')
- wt.lock_write()
- self.addCleanup(wt.unlock)
- wt.add('')
- wt.commit('rev-1', rev_id='rev-1',
- timestamp=1132586655, timezone=36000,
- committer='Joe Foo <joe at foo.com>')
- wt.commit('rev-merged', rev_id='rev-2a',
- timestamp=1132586700, timezone=36000,
- committer='Joe Foo <joe at foo.com>')
- wt.set_parent_ids(['rev-1', 'rev-2a'])
- wt.branch.set_last_revision_info(1, 'rev-1')
- wt.commit('rev-2', rev_id='rev-2b',
- timestamp=1132586800, timezone=36000,
- committer='Joe Foo <joe at foo.com>')
- logfile = self.make_utf8_encoded_stringio()
- formatter = log.ShortLogFormatter(to_file=logfile)
- wtb = wt.branch
- lf = LogCatcher()
- revspec = revisionspec.RevisionSpec.from_string('1.1.1')
- rev = revspec.in_history(wtb)
- self.assertRaises(errors.BzrCommandError, log.show_log, wtb, lf,
- start_revision=rev, end_revision=rev)
-
def make_commits_with_trailing_newlines(wt):
"""Helper method for LogFormatter tests"""
@@ -1344,7 +1317,6 @@
direction, # direction
file_id, # specific_fileid
True, # generate_merge_revisions
- True, # allow_single_merge_revision
)
return revs
=== modified file 'bzrlib/workingtree.py'
--- a/bzrlib/workingtree.py 2009-03-27 04:10:25 +0000
+++ b/bzrlib/workingtree.py 2009-03-31 00:12:10 +0000
@@ -969,7 +969,8 @@
return file_id
def get_symlink_target(self, file_id):
- return os.readlink(self.id2abspath(file_id).encode(osutils._fs_enc))
+ return os.readlink(self.id2abspath(file_id).encode(osutils._fs_enc)
+ ).decode(osutils._fs_enc)
@needs_write_lock
def subsume(self, other_tree):
=== modified file 'bzrlib/workingtree_4.py'
--- a/bzrlib/workingtree_4.py 2009-03-30 12:14:49 +0000
+++ b/bzrlib/workingtree_4.py 2009-03-31 07:42:16 +0000
@@ -1743,10 +1743,9 @@
if entry[1][parent_index][0] != 'l':
return None
else:
- # At present, none of the tree implementations supports non-ascii
- # symlink targets. So we will just assume that the dirstate path is
- # correct.
- return entry[1][parent_index][1]
+ target = entry[1][parent_index][1]
+ target = target.decode('utf8')
+ return target
def get_revision_id(self):
"""Return the revision id for this tree."""
More information about the bazaar-commits
mailing list