13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
108
108
self.assertEqual('version 2', text)
110
def test_missing_commit(self):
111
"""Test a commit with a missing file"""
110
def test_delete_commit(self):
111
"""Test a commit with a deleted file"""
112
112
wt = self.make_branch_and_tree('.')
114
114
file('hello', 'w').write('hello world')
275
275
self.check_inventory_shape(wt.read_working_inventory(),
276
276
['a/', 'a/hello', 'a/b/'])
277
self.check_inventory_shape(b.repository.get_inventory(r3),
277
self.check_inventory_shape(b.repository.get_revision_inventory(r3),
278
278
['a/', 'a/hello', 'a/b/'])
550
550
this_tree.merge_from_branch(other_tree.branch)
551
551
reporter = CapturingReporter()
552
552
this_tree.commit('do the commit', reporter=reporter)
554
('change', 'unchanged', ''),
555
('change', 'unchanged', 'dirtoleave'),
556
('change', 'unchanged', 'filetoleave'),
554
557
('change', 'modified', 'filetomodify'),
555
558
('change', 'added', 'newdir'),
556
559
('change', 'added', 'newfile'),
560
563
('renamed', 'renamed', 'filetoreparent', 'renameddir/reparentedfile'),
561
564
('deleted', 'dirtoremove'),
562
565
('deleted', 'filetoremove'),
564
result = set(reporter.calls)
565
missing = expected - result
566
new = result - expected
567
self.assertEqual((set(), set()), (missing, new))
569
569
def test_commit_removals_respects_filespec(self):
570
570
"""Commit respects the specified_files for removals."""
708
708
cb = self.Callback(u'commit 2', self)
709
709
repository = tree.branch.repository
710
710
# simulate network failure
711
def raise_(self, arg, arg2, arg3=None, arg4=None):
711
def raise_(self, arg, arg2):
712
712
raise errors.NoSuchFile('foo')
713
713
repository.add_inventory = raise_
714
repository.add_inventory_by_delta = raise_
715
714
self.assertRaises(errors.NoSuchFile, tree.commit, message_callback=cb)
716
715
self.assertFalse(cb.called)
748
747
rev_id = tree.commit('commit 1')
749
748
rev = tree.branch.repository.get_revision(rev_id)
750
749
self.assertFalse('author' in rev.properties)
751
self.assertFalse('authors' in rev.properties)
753
751
def test_commit_author(self):
754
752
"""Passing a non-empty author kwarg to MutableTree.commit should add
755
753
the 'author' revision property.
757
755
tree = self.make_branch_and_tree('foo')
758
rev_id = self.callDeprecated(['The parameter author was '
759
'deprecated in version 1.13. Use authors instead'],
760
tree.commit, 'commit 1', author='John Doe <jdoe@example.com>')
756
rev_id = tree.commit('commit 1', author='John Doe <jdoe@example.com>')
761
757
rev = tree.branch.repository.get_revision(rev_id)
762
758
self.assertEqual('John Doe <jdoe@example.com>',
763
rev.properties['authors'])
764
self.assertFalse('author' in rev.properties)
766
def test_commit_empty_authors_list(self):
767
"""Passing an empty list to authors shouldn't add the property."""
768
tree = self.make_branch_and_tree('foo')
769
rev_id = tree.commit('commit 1', authors=[])
770
rev = tree.branch.repository.get_revision(rev_id)
771
self.assertFalse('author' in rev.properties)
772
self.assertFalse('authors' in rev.properties)
774
def test_multiple_authors(self):
775
tree = self.make_branch_and_tree('foo')
776
rev_id = tree.commit('commit 1',
777
authors=['John Doe <jdoe@example.com>',
778
'Jane Rey <jrey@example.com>'])
779
rev = tree.branch.repository.get_revision(rev_id)
780
self.assertEqual('John Doe <jdoe@example.com>\n'
781
'Jane Rey <jrey@example.com>', rev.properties['authors'])
782
self.assertFalse('author' in rev.properties)
784
def test_author_and_authors_incompatible(self):
785
tree = self.make_branch_and_tree('foo')
786
self.assertRaises(AssertionError, tree.commit, 'commit 1',
787
authors=['John Doe <jdoe@example.com>',
788
'Jane Rey <jrey@example.com>'],
789
author="Jack Me <jme@example.com>")
791
def test_author_with_newline_rejected(self):
792
tree = self.make_branch_and_tree('foo')
793
self.assertRaises(AssertionError, tree.commit, 'commit 1',
794
authors=['John\nDoe <jdoe@example.com>'])
759
rev.properties['author'])
796
761
def test_commit_with_checkout_and_branch_sharing_repo(self):
797
762
repo = self.make_repository('repo', shared=True)