/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 test_rebase.py

  • Committer: Jelmer Vernooij
  • Date: 2007-08-02 12:15:10 UTC
  • mto: (0.436.41 trunk)
  • mto: This revision was merged to the branch mainline in revision 7441.
  • Revision ID: jelmer@samba.org-20070802121510-ybt147lrfpcyuq8n
More work using proper merge bases.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
from bzrlib.errors import UnknownFormatError, NoSuchFile, ConflictsInTree
19
19
from bzrlib.revision import NULL_REVISION
20
20
from bzrlib.tests import TestCase, TestCaseWithTransport
 
21
from bzrlib.trace import mutter
21
22
 
22
23
from rebase import (marshall_rebase_plan, unmarshall_rebase_plan, 
23
24
                    replay_snapshot, generate_simple_plan,
27
28
                    remove_rebase_plan, read_active_rebase_revid, 
28
29
                    write_active_rebase_revid, write_rebase_plan, MapTree,
29
30
                    ReplaySnapshotError, ReplayParentsInconsistent, 
30
 
                    replay_delta_workingtree, replay_determine_base)
 
31
                    replay_delta_workingtree)
31
32
 
32
33
 
33
34
class RebasePlanReadWriterTests(TestCase):
529
530
        """
530
531
        oldwt = self.make_branch_and_tree("old")
531
532
        self.build_tree(['old/afile'])
532
 
        file("old/afile", "w").write("A\n")
 
533
        file("old/afile", "w").write("A\n" * 10)
533
534
        oldwt.add(["afile"])
534
535
        oldwt.commit("base", rev_id="A")
535
536
        newwt = oldwt.bzrdir.sprout("new").open_workingtree()
536
 
        file("old/afile", "w").write("B\n")
 
537
        file("old/afile", "w").write("A\n"*10 + "B\n")
537
538
        oldwt.commit("bla", rev_id="B")
538
 
        file("old/afile", "w").write("C\n")
 
539
        file("old/afile", "w").write("A\n" * 10 + "C\n")
539
540
        oldwt.commit("bla", rev_id="C")
540
541
        self.build_tree(['new/bfile'])
541
542
        newwt.add(["bfile"])
 
543
        file("new/bfile", "w").write("D\n")
542
544
        newwt.commit("bla", rev_id="D")
543
 
        file("new/bfile", "w").write("blaaah")
 
545
        file("new/afile", "w").write("E\n" + "A\n"*10 + "B\n")
 
546
        file("new/bfile", "w").write("D\nE\n")
544
547
        newwt.add_pending_merge("B")
545
548
        newwt.commit("bla", rev_id="E")
546
549
        newwt.branch.repository.fetch(oldwt.branch.repository)
548
551
        oldrev = newwt.branch.repository.get_revision("D")
549
552
        newrev = newwt.branch.repository.get_revision("D'")
550
553
        self.assertEquals(["C"], newrev.parent_ids)
551
 
        replay_delta_workingtree(newwt, "E", "E'", ["D'"])
 
554
        self.assertRaises(ConflictsInTree, 
 
555
            lambda: replay_delta_workingtree(newwt, "E", "E'", ["D'"]))
 
556
        self.assertEquals("E\n" + "A\n" * 10 + "C\n",
 
557
                open("new/afile", 'r').read())
 
558
        mutter("bfile: %s" % open("new/bfile", "r").read())
552
559
        oldrev = newwt.branch.repository.get_revision("E")
553
560
        newrev = newwt.branch.repository.get_revision("E'")
554
561
        self.assertEquals(["D'"], newrev.parent_ids)
565
572
    def test_create(self):
566
573
        ReplayParentsInconsistent("afileid", "arevid")
567
574
 
568
 
class DetermineWorkingTree(TestCase):
569
 
    def test_simple(self):
570
 
        self.assertEquals("B",
571
 
                replay_determine_base({"B": ["A"], "B'": ["A"], "C": ["B"]}, 
572
 
                "C", ["B'"]))
573
 
 
574
 
    def test_diverged(self):
575
 
        """
576
 
        A
577
 
        | \ 
578
 
        B  D
579
 
        |  |
580
 
        C  E
581
 
        """
582
 
        graph = {
583
 
                "A": [],
584
 
                "B": ["A"],
585
 
                "C": ["B"],
586
 
                "D": ["A"],
587
 
                "E": ["D"]}
588
 
        self.assertEquals("D", 
589
 
                replay_determine_base(graph, "E", ["D'"]))
590
 
        self.assertEquals("A", 
591
 
                replay_determine_base(graph, "D", ["C"]))
592
 
 
593
 
    def test_merged(self):
594
 
        """
595
 
        A
596
 
        |\ 
597
 
        B D
598
 
        |\|
599
 
        C E
600
 
        """
601
 
        graph = {
602
 
                "A": [],
603
 
                "B": ["A"],
604
 
                "C": ["B"],
605
 
                "D": ["A"],
606
 
                "E": ["D", "B"]}
607
 
        self.assertEquals("D", 
608
 
                replay_determine_base(graph, "E", ["D'"]))
609
 
        self.assertEquals("A", 
610
 
                replay_determine_base(graph, "D", ["C"]))