Rev 3224: nerge bzr.dev in file:///v/home/vila/src/bzr/experimental/selftest/
Vincent Ladeuil
v.ladeuil+lp at free.fr
Sun Mar 23 22:43:24 GMT 2008
At file:///v/home/vila/src/bzr/experimental/selftest/
------------------------------------------------------------
revno: 3224
revision-id: v.ladeuil+lp at free.fr-20080323224319-3bn6nr4uezrb5d89
parent: v.ladeuil+lp at free.fr-20080321190032-6x21616wafgwczmx
parent: pqm at pqm.ubuntu.com-20080323213924-jw60nko0lafszdaa
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: selftest
timestamp: Sun 2008-03-23 23:43:19 +0100
message:
nerge bzr.dev
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/diff.py diff.py-20050309040759-26944fbbf2ebbf36
bzrlib/log.py log.py-20050505065812-c40ce11702fe5fb1
bzrlib/tests/test_diff.py testdiff.py-20050727164403-d1a3496ebb12e339
------------------------------------------------------------
revno: 3193.1.108
revision-id: pqm at pqm.ubuntu.com-20080323213924-jw60nko0lafszdaa
parent: pqm at pqm.ubuntu.com-20080323200233-gaiwmyujgxauj4ve
parent: aaron at aaronbentley.com-20080323200617-0jr1hwcg3p2u32ul
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Sun 2008-03-23 21:39:24 +0000
message:
Remove deprecated codepaths from log.py (james_w)
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/log.py log.py-20050505065812-c40ce11702fe5fb1
------------------------------------------------------------
revno: 3193.106.2
revision-id: aaron at aaronbentley.com-20080323200617-0jr1hwcg3p2u32ul
parent: aaron at aaronbentley.com-20080323200343-56d44clo1544kzjy
committer: Aaron Bentley <aaron at aaronbentley.com>
branch nick: bzr.ab.integration2
timestamp: Sun 2008-03-23 16:06:17 -0400
message:
Cleanups
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/log.py log.py-20050505065812-c40ce11702fe5fb1
------------------------------------------------------------
revno: 3193.106.1
revision-id: aaron at aaronbentley.com-20080323200343-56d44clo1544kzjy
parent: pqm at pqm.ubuntu.com-20080320180614-grrzhydka050ap3a
parent: jw+debian at jameswestby.net-20080316122554-tllkss9hg512n8o0
committer: Aaron Bentley <aaron at aaronbentley.com>
branch nick: bzr.ab.integration2
timestamp: Sun 2008-03-23 16:03:43 -0400
message:
Merge deprecated codepath removal
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/log.py log.py-20050505065812-c40ce11702fe5fb1
------------------------------------------------------------
revno: 3193.105.1
revision-id: jw+debian at jameswestby.net-20080316122554-tllkss9hg512n8o0
parent: pqm at pqm.ubuntu.com-20080313004030-mff9aq1jfg13n0qi
committer: James Westby <jw+debian at jameswestby.net>
branch nick: bzr.dev
timestamp: Sun 2008-03-16 12:25:54 +0000
message:
Remove deprecated codepaths from log.py.
They have been deprecated since 0.17, so everyone should have moved
by now.
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/log.py log.py-20050505065812-c40ce11702fe5fb1
------------------------------------------------------------
revno: 3193.1.107
revision-id: pqm at pqm.ubuntu.com-20080323200233-gaiwmyujgxauj4ve
parent: pqm at pqm.ubuntu.com-20080320180614-grrzhydka050ap3a
parent: aaron at aaronbentley.com-20080323182637-udhhz4srjvwjc95p
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Sun 2008-03-23 20:02:33 +0000
message:
Diff describes execute-bit changes better (cmiller)
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/diff.py diff.py-20050309040759-26944fbbf2ebbf36
bzrlib/tests/test_diff.py testdiff.py-20050727164403-d1a3496ebb12e339
------------------------------------------------------------
revno: 3193.104.2
revision-id: aaron at aaronbentley.com-20080323182637-udhhz4srjvwjc95p
parent: aaron at aaronbentley.com-20080323182425-qnr06aeuwcxr86t9
committer: Aaron Bentley <aaron at aaronbentley.com>
branch nick: bzr.ab.integration
timestamp: Sun 2008-03-23 14:26:37 -0400
message:
Add NEWS entry
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
------------------------------------------------------------
revno: 3193.104.1
revision-id: aaron at aaronbentley.com-20080323182425-qnr06aeuwcxr86t9
parent: pqm at pqm.ubuntu.com-20080320180614-grrzhydka050ap3a
parent: bzrdev at chad.org-20080313232212-gl2nml7k11m6623u
committer: Aaron Bentley <aaron at aaronbentley.com>
branch nick: bzr.ab.integration
timestamp: Sun 2008-03-23 14:24:25 -0400
message:
Merge explicit property change from Chad Miller
modified:
bzrlib/diff.py diff.py-20050309040759-26944fbbf2ebbf36
bzrlib/tests/test_diff.py testdiff.py-20050727164403-d1a3496ebb12e339
------------------------------------------------------------
revno: 3193.103.1
revision-id: bzrdev at chad.org-20080313232212-gl2nml7k11m6623u
parent: pqm at pqm.ubuntu.com-20080312213603-mtgxmfy3td5n04yh
committer: C Miller <bzrdev at chad.org>
branch nick: bzr.dev--explicit-prop-diff
timestamp: Thu 2008-03-13 19:22:12 -0400
message:
Describe the property changes in diffs. Currently, this is the executable-bit
only.
Now, includes tests.
modified:
bzrlib/diff.py diff.py-20050309040759-26944fbbf2ebbf36
bzrlib/tests/test_diff.py testdiff.py-20050727164403-d1a3496ebb12e339
-------------- next part --------------
=== modified file 'NEWS'
--- a/NEWS 2008-03-20 16:24:32 +0000
+++ b/NEWS 2008-03-23 21:39:24 +0000
@@ -31,6 +31,9 @@
* Merge is faster. We no longer check a file's existence unnecessarily
when merging the execute bit. (Aaron Bentley)
+ * Diff is now more specific about execute-bit changes it describes
+ (Chad Miller)
+
BUGFIXES:
* ``bzr mv a b`` can be now used also to rename previously renamed
@@ -47,6 +50,10 @@
API BREAKS:
+ * Log formatters must now provide log_revision instead of
+ show and show_merge_revno methods. The latter had been
+ deprecated since the 0.17 release. (James Westby)
+
TESTING:
INTERNALS:
=== modified file 'bzrlib/diff.py'
--- a/bzrlib/diff.py 2008-03-07 14:15:10 +0000
+++ b/bzrlib/diff.py 2008-03-13 23:22:12 +0000
@@ -41,6 +41,7 @@
from bzrlib.symbol_versioning import (
deprecated_function,
one_zero,
+ one_three
)
from bzrlib.trace import mutter, warning
@@ -540,12 +541,20 @@
raise errors.PathsDoNotExist(sorted(s))
+ at deprecated_function(one_three)
def get_prop_change(meta_modified):
if meta_modified:
return " (properties changed)"
else:
return ""
+def get_executable_change(old_is_x, new_is_x):
+ descr = { True:"+x", False:"-x", None:"??" }
+ if old_is_x != new_is_x:
+ return ["%s to %s" % (descr[old_is_x], descr[new_is_x],)]
+ else:
+ return []
+
class DiffPath(object):
"""Base type for command object that compare files"""
@@ -954,7 +963,15 @@
old_present = (kind[0] is not None and versioned[0])
new_present = (kind[1] is not None and versioned[1])
renamed = (parent[0], name[0]) != (parent[1], name[1])
- prop_str = get_prop_change(executable[0] != executable[1])
+
+ properties_changed = []
+ properties_changed.extend(get_executable_change(executable[0], executable[1]))
+
+ if properties_changed:
+ prop_str = " (properties changed: %s)" % (", ".join(properties_changed),)
+ else:
+ prop_str = ""
+
if (old_present, new_present) == (True, False):
self.to_file.write("=== removed %s '%s'\n" %
(kind[0], oldpath_encoded))
=== modified file 'bzrlib/log.py'
--- a/bzrlib/log.py 2008-03-09 22:06:47 +0000
+++ b/bzrlib/log.py 2008-03-23 20:06:17 +0000
@@ -63,7 +63,6 @@
config,
lazy_regex,
registry,
- symbol_versioning,
)
from bzrlib.errors import (
BzrCommandError,
@@ -79,10 +78,6 @@
from bzrlib.revisionspec import (
RevisionInfo,
)
-from bzrlib.symbol_versioning import (
- deprecated_method,
- zero_seventeen,
- )
from bzrlib.trace import mutter
from bzrlib.tsort import (
merge_sort,
@@ -222,26 +217,7 @@
if direction == 'reverse':
start_rev_id, end_rev_id = end_rev_id, start_rev_id
- legacy_lf = getattr(lf, 'log_revision', None) is None
- if legacy_lf:
- # pre-0.17 formatters use show for mainline revisions.
- # how should we show merged revisions ?
- # pre-0.11 api: show_merge
- # 0.11-0.16 api: show_merge_revno
- show_merge_revno = getattr(lf, 'show_merge_revno', None)
- show_merge = getattr(lf, 'show_merge', None)
- if show_merge is None and show_merge_revno is None:
- # no merged-revno support
- generate_merge_revisions = False
- else:
- generate_merge_revisions = True
- # tell developers to update their code
- symbol_versioning.warn('LogFormatters should provide log_revision '
- 'instead of show and show_merge_revno since bzr 0.17.',
- DeprecationWarning, stacklevel=3)
- else:
- generate_merge_revisions = getattr(lf, 'supports_merge_revisions',
- False)
+ generate_merge_revisions = getattr(lf, 'supports_merge_revisions', False)
generate_single_revision = False
if ((not generate_merge_revisions)
and ((start_rev_id and (start_rev_id not in rev_nos))
@@ -306,26 +282,9 @@
if not searchRE.search(rev.message):
continue
- if not legacy_lf:
- lr = LogRevision(rev, revno, merge_depth, delta,
- rev_tag_dict.get(rev_id))
- lf.log_revision(lr)
- else:
- # support for legacy (pre-0.17) LogFormatters
- if merge_depth == 0:
- if generate_tags:
- lf.show(revno, rev, delta, rev_tag_dict.get(rev_id))
- else:
- lf.show(revno, rev, delta)
- else:
- if show_merge_revno is None:
- lf.show_merge(rev, merge_depth)
- else:
- if generate_tags:
- lf.show_merge_revno(rev, merge_depth, revno,
- rev_tag_dict.get(rev_id))
- else:
- lf.show_merge_revno(rev, merge_depth, revno)
+ lr = LogRevision(rev, revno, merge_depth, delta,
+ rev_tag_dict.get(rev_id))
+ lf.log_revision(lr)
if limit:
log_count += 1
if log_count >= limit:
@@ -616,10 +575,6 @@
# """
# raise NotImplementedError('not implemented in abstract base')
- @deprecated_method(zero_seventeen)
- def show(self, revno, rev, delta):
- raise NotImplementedError('not implemented in abstract base')
-
def short_committer(self, rev):
name, address = config.parse_username(rev.committer)
if name:
@@ -639,17 +594,6 @@
supports_delta = True
supports_tags = True
- @deprecated_method(zero_seventeen)
- def show(self, revno, rev, delta, tags=None):
- lr = LogRevision(rev, revno, 0, delta, tags)
- return self.log_revision(lr)
-
- @deprecated_method(zero_seventeen)
- def show_merge_revno(self, rev, merge_depth, revno, tags=None):
- """Show a merged revision rev, with merge_depth and a revno."""
- lr = LogRevision(rev, revno, merge_depth, tags=tags)
- return self.log_revision(lr)
-
def log_revision(self, revision):
"""Log a revision, either merged or not."""
indent = ' ' * revision.merge_depth
@@ -695,11 +639,6 @@
supports_delta = True
supports_single_merge_revision = True
- @deprecated_method(zero_seventeen)
- def show(self, revno, rev, delta):
- lr = LogRevision(rev, revno, 0, delta)
- return self.log_revision(lr)
-
def log_revision(self, revision):
to_file = self.to_file
date_str = format_date(revision.rev.timestamp,
@@ -755,11 +694,6 @@
else:
return rev.message
- @deprecated_method(zero_seventeen)
- def show(self, revno, rev, delta):
- self.to_file.write(self.log_string(revno, rev, terminal_width()-1))
- self.to_file.write('\n')
-
def log_revision(self, revision):
self.to_file.write(self.log_string(revision.revno, revision.rev,
self._max_chars))
=== modified file 'bzrlib/tests/test_diff.py'
--- a/bzrlib/tests/test_diff.py 2008-01-29 15:58:23 +0000
+++ b/bzrlib/tests/test_diff.py 2008-03-13 23:22:12 +0000
@@ -34,6 +34,7 @@
)
from bzrlib.errors import BinaryFile, NoDiff, ExecutableMissing
import bzrlib.osutils as osutils
+import bzrlib.transform as transform
import bzrlib.patiencediff
import bzrlib._patiencediff_py
from bzrlib.tests import (Feature, TestCase, TestCaseWithTransport,
@@ -509,6 +510,39 @@
self.assertContainsRe(diff, '-contents\n'
'\\+new contents\n')
+
+ def test_internal_diff_exec_property(self):
+ tree = self.make_branch_and_tree('tree')
+
+ tt = transform.TreeTransform(tree)
+ tt.new_file('a', tt.root, 'contents\n', 'a-id', True)
+ tt.new_file('b', tt.root, 'contents\n', 'b-id', False)
+ tt.new_file('c', tt.root, 'contents\n', 'c-id', True)
+ tt.new_file('d', tt.root, 'contents\n', 'd-id', False)
+ tt.new_file('e', tt.root, 'contents\n', 'control-e-id', True)
+ tt.new_file('f', tt.root, 'contents\n', 'control-f-id', False)
+ tt.apply()
+ tree.commit('one', rev_id='rev-1')
+
+ tt = transform.TreeTransform(tree)
+ tt.set_executability(False, tt.trans_id_file_id('a-id'))
+ tt.set_executability(True, tt.trans_id_file_id('b-id'))
+ tt.set_executability(False, tt.trans_id_file_id('c-id'))
+ tt.set_executability(True, tt.trans_id_file_id('d-id'))
+ tt.apply()
+ tree.rename_one('c', 'new-c')
+ tree.rename_one('d', 'new-d')
+
+ diff = self.get_diff(tree.basis_tree(), tree)
+
+ self.assertContainsRe(diff, r"file 'a'.*\(properties changed:.*\+x to -x.*\)")
+ self.assertContainsRe(diff, r"file 'b'.*\(properties changed:.*-x to \+x.*\)")
+ self.assertContainsRe(diff, r"file 'c'.*\(properties changed:.*\+x to -x.*\)")
+ self.assertContainsRe(diff, r"file 'd'.*\(properties changed:.*-x to \+x.*\)")
+ self.assertNotContainsRe(diff, r"file 'e'")
+ self.assertNotContainsRe(diff, r"file 'f'")
+
+
def test_binary_unicode_filenames(self):
"""Test that contents of files are *not* encoded in UTF-8 when there
is a binary file in the diff.
More information about the bazaar-commits
mailing list