/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to doc/en/user-guide/adv_merging.txt

  • Committer: Vincent Ladeuil
  • Date: 2009-10-06 14:40:37 UTC
  • mto: (4728.1.2 integration)
  • mto: This revision was merged to the branch mainline in revision 4731.
  • Revision ID: v.ladeuil+lp@free.fr-20091006144037-o76rgosv9hj3td0y
Simplify mutable_tree.has_changes() and update call sites.

* bzrlib/workingtree.py:
(WorkingTree.merge_from_branch): Add a force parameter. Replace
the check_basis() call by the corresponding code, taken the new
'force' parameter into account.

* bzrlib/tests/test_status.py:
(TestStatus.make_multiple_pending_tree): Add force=True on
supplementary merges.

* bzrlib/tests/test_reconfigure.py:
(TestReconfigure): Add a test for pending merges.

* bzrlib/tests/test_msgeditor.py:
(MsgEditorTest.make_multiple_pending_tree): Add force=True on
supplementary merges.

* bzrlib/tests/blackbox/test_uncommit.py:
(TestUncommit.test_uncommit_octopus_merge): Add force=True on
supplementary merges.

* bzrlib/send.py:
(send): Use the simplified has_changes(). Fix typo in comment too.

* bzrlib/reconfigure.py:
(Reconfigure._check): Use the simplified has_changes().

* bzrlib/mutabletree.py:
(MutableTree.has_changes): Make the tree parameter optional but
retain it for tests. Add a pending merges check.

* bzrlib/merge.py:
(Merger.ensure_revision_trees, Merger.file_revisions,
Merger.check_basis, Merger.compare_basis): Deprecate.

* bzrlib/bundle/apply_bundle.py:
(merge_bundle): Replace the check_basis() call by the
corresponding code.

* bzrlib/builtins.py:
(cmd_remove_tree.run, cmd_push.run, cmd_merge.run): Use the
simplified has_changes().
(cmd_merge.run): Replace the check_basis call() by the corresponding
code (minus the alredy done has_changes() check).

Show diffs side-by-side

added added

removed removed

Lines of Context:
47
47
be done at a later time. In other cases, additional conflicts will need
48
48
to be resolved when the changes are merged again.
49
49
 
50
 
Merging without parents
51
 
-----------------------
52
 
 
53
 
A related technique to cherrypicking, in that it makes changes without
54
 
reference to the revisions that they came from is to perform a merge, but
55
 
forget about the parent revisions before committing.  This has the effect of
56
 
making all of the changes that would have been in the merge happen in a single
57
 
commit.  After the merge and before the corresponding commit, you can do::
58
 
 
59
 
  bzr revert --forget-merges
60
 
 
61
 
to keep the changes in the working tree, but remove the record of the
62
 
revisions where the changes originated.  The next commit would then record
63
 
all of those changes without any record of the merged revisions.
64
 
 
65
 
This is desired by some users to make their history "cleaner", but you should
66
 
be careful that the loss of history does not outweigh the value of cleanliness,
67
 
particularly given Bazaar's capabilities for progressively disclosing merged
68
 
revisions.  In particular, because this will include the changes from the
69
 
source branch, but without attribution to that branch, it can lead to
70
 
additional conflicts on later merges that involve the same source and
71
 
target branches.
72
 
 
73
50
 
74
51
Reverse cherrypicking
75
52
---------------------