⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 svnmerge_test.py

📁 subversion-1.4.3-1.tar.gz 配置svn的源码
💻 PY
📖 第 1 页 / 共 3 页
字号:
    def testTrimmedAvailMerge(self):        """Check that both avail and merge do not search for phantom revs too hard."""        self.svnmerge("init")        self.svnmerge("avail -vv -r8-9", match=r"svn log.*-r8:9")        self.svnmerge("merge -F -vv -r8-9", match=r"svn log.*-r8:9")        self.svnmerge("avail -vv -r2", nonmatch=r"svn log")        self.svnmerge("integrated", match=r"^3-6,8-9$")    def testMergeRecordOnly(self):        """Check that flagging revisions as manually merged works."""        self.svnmerge("init")        self.svnmerge("avail -vv -r9", match=r"svn log.*-r9:9")        self.svnmerge("merge --record-only -F -vv -r9",                      nonmatch=r"svn merge -r 8:9")        self.svnmerge("avail -r9", match=r"\A$")        self.svnmerge("integrated", match=r"^3-6,9$")        self.svnmerge("integrated -r9", match=r"^9$")    def testBidirectionalMerges(self):        """Check that reflected revisions are recognized properly for bidirectional merges."""        os.chdir("..")        os.chdir("test-branch")        self.svnmerge2(["init", self.test_repo_url + "/trunk"])        self.launch("svn commit -F svnmerge-commit-message.txt",                    match=r"Committed revision 14")        os.remove("svnmerge-commit-message.txt")        os.chdir("..")        os.chdir("trunk")        # Not using switch, so must update to get latest repository rev.        self.launch("svn update", match=r"At revision 14")        self.svnmerge2(["init", self.test_repo_url + "/branches/test-branch"])        self.launch("svn commit -F svnmerge-commit-message.txt",                    match=r"Committed revision 15")        os.remove("svnmerge-commit-message.txt")        open("test1", "w").write("test 1-changed_on_trunk")        self.launch("svn commit -m \"Change to test1 on trunk\"",                    match=r"Committed revision 16")        self.svnmerge("integrated", match=r"^13-14$")        os.chdir("..")        os.chdir("test-branch")        # Not using switch, so must update to get latest repository rev.        self.launch("svn update", match=r"At revision 16")        self.svnmerge("avail -vv --bidirectional", match=r"16$")        self.svnmerge("merge -vv --bidirectional", match=r"merge -r 15:16")        p = self.getproperty()        self.assertEqual("/trunk:1-16", p)        self.svnmerge("integrated", match=r"^3-16$")        self.launch("svn commit -F svnmerge-commit-message.txt",                    match=r"Committed revision 17")        os.remove("svnmerge-commit-message.txt")        open("test1", "w").write("test 1-changed_on_branch_after_merge_from_trunk")        self.launch("svn commit -m \"Change to test1 on branch\"",                    match=r"Committed revision 18")        os.chdir("..")        os.chdir("trunk")        # Not using switch, so must update to get latest repository rev.        self.launch("svn update", match=r"At revision 18")        # Ensure default is not to check for reflected revisions.        self.svnmerge("avail -vv", match=r"17-18$")        # Now check reflected revision is excluded with --bidirectional flag.        self.svnmerge("avail -vv --bidirectional", match=r"18$")        self.svnmerge("merge -vv --bidirectional", match=r"merge -r 17:18")        p = self.getproperty()        self.assertEqual("/branches/test-branch:1-18", p)        self.svnmerge("integrated", match=r"^13-18$")    def testBidirectionalMergesMultiBranch(self):        """Check that merges from a second branch are not considered reflected for other branches."""        os.chdir("..")        self.multilaunch("""            svn cp -m "Create test-branch2" %(TEST_REPO_URL)s/trunk %(TEST_REPO_URL)s/branches/test-branch2            svn co %(TEST_REPO_URL)s/branches/test-branch2 test-branch2        """)        os.chdir("test-branch")        self.svnmerge2(["init", self.test_repo_url + "/trunk"])        self.launch("svn commit -F svnmerge-commit-message.txt",                    match=r"Committed revision 15")        os.remove("svnmerge-commit-message.txt")        os.chdir("..")        os.chdir("test-branch2")        self.svnmerge2(["init", self.test_repo_url + "/trunk"])        self.launch("svn commit -F svnmerge-commit-message.txt",                    match=r"Committed revision 16")        os.remove("svnmerge-commit-message.txt")        os.chdir("..")        os.chdir("trunk")        # Not using switch, so must update to get latest repository rev.        self.launch("svn update", match=r"At revision 16")        self.svnmerge2(["init", self.test_repo_url + "/branches/test-branch"])        self.launch("svn commit -F svnmerge-commit-message.txt",                    match=r"Committed revision 17")        os.remove("svnmerge-commit-message.txt")        self.svnmerge2(["init", self.test_repo_url + "/branches/test-branch2"])        self.launch("svn commit -F svnmerge-commit-message.txt",                    match=r"Committed revision 18")        os.remove("svnmerge-commit-message.txt")        os.chdir("..")        os.chdir("test-branch2")        open("test1", "w").write("test 1-changed_on_branch2")        self.launch("svn commit -m \"Change to test1 on branch2\"",                    match=r"Committed revision 19")        os.chdir("..")        os.chdir("trunk")        # Not using switch, so must update to get latest repository rev.        self.launch("svn update", match=r"At revision 19")        # Merge into trunk        self.svnmerge("merge -vv --head branch2",                      match=r"merge -r 18:19")        p = self.getproperty()        self.assertEqual("/branches/test-branch:1-16 /branches/test-branch2:1-19", p)        self.svnmerge("integrated --head branch2", match=r"^14-19$")        self.svnmerge("integrated --head ../test-branch", match=r"^13-16$")        self.launch("svn commit -F svnmerge-commit-message.txt",                    match=r"Committed revision 20")        os.remove("svnmerge-commit-message.txt")        os.chdir("..")        os.chdir("test-branch")        # Not using switch, so must update to get latest repository rev.        self.launch("svn update", match=r"At revision 20")        # Latest revision on trunk which was merged from test-branch2        # should be available for test-branch with --bidirectional flag.        self.svnmerge("avail -vv --bidirectional", match=r"20$")        self.svnmerge("merge -vv --bidirectional", match=r"merge -r 17:20")        p = self.getproperty()        self.assertEqual("/trunk:1-20", p)        self.svnmerge("integrated", match=r"^3-20$")    def testRollbackWithoutInit(self):        """Rollback should error out if invoked prior to init"""        self.svnmerge("rollback -vv --head ../trunk",                      error = True,                      match = r"no integration info available for repository path")    def testRollbackOutsidePossibleRange(self):        """`svnmerge rollback' should error out if range contains revisions prior to        SOURCE creation date."""        # Initialize svnmerge        self.svnmerge2(["init", self.test_repo_url + "/trunk"])        self.launch("svn commit -F svnmerge-commit-message.txt",                    match = r"Committed revision 14")        os.remove("svnmerge-commit-message.txt")        expected_error  = r"""Specified revision range falls out of the rollback range."""        self.svnmerge("rollback -vv --head ../trunk -r 2-14",                      error = True,                      match = expected_error)    def testRollbackWithoutRevisionOpt(self):        """`svnmerge rollback' should error out if -r option is not given"""        # Initialize svnmerge        self.svnmerge2(["init", self.test_repo_url + "/trunk"])        self.launch("svn commit -F svnmerge-commit-message.txt",                    match=r"Committed revision 14")        os.remove("svnmerge-commit-message.txt")        self.svnmerge("rollback -vv --head ../trunk",                      error = True,                      match = r"The '-r' option is mandatory for rollback")    def testInitAndRollbackRecordOnly(self):        """Init svnmerge, modify source head, merge, rollback --record-only."""        # Initialize svnmerge        self.svnmerge2(["init", self.test_repo_url + "/trunk"])        self.launch("svn commit -F svnmerge-commit-message.txt",                    match = r"Committed revision 14")        os.remove("svnmerge-commit-message.txt")        # Rollback record-only        expected_output = r"property 'svnmerge-integrated' set on '.'"        detested_output = r"""D    test2D    test3"""        self.svnmerge("rollback -vv --record-only --head ../trunk -r5-7",                      match = expected_output,                      nonmatch = detested_output)    def testInitAndRollback(self):        """Init svnmerge, modify source head, merge, rollback."""        # Initialize svnmerge        self.svnmerge2(["init", self.test_repo_url + "/trunk"])        self.launch("svn commit -F svnmerge-commit-message.txt",                    match = r"Committed revision 14")        os.remove("svnmerge-commit-message.txt")        # Svnmerge rollback r5-7        expected_output = r"""D    test2D    test3"""        self.svnmerge("rollback -vv --head ../trunk -r5-7",                      match = expected_output)    def testMergeAndRollbackEmptyRevisionRange(self):        """Init svnmerge, modify source head, merge, rollback where no merge           occured."""        # Initialize svnmerge        self.svnmerge2(["init", self.test_repo_url + "/trunk"])        self.launch("svn commit -F svnmerge-commit-message.txt",                    match = r"Committed revision 14")        os.remove("svnmerge-commit-message.txt")        # Make changes to trunk        os.chdir("../trunk")        open("newfile", "w").close()        self.launch("svn add newfile")        self.launch("svn commit -m 'Adding newfile'", match=r"Committed revision 15")        open("anothernewfile", "w").close()        self.launch("svn add anothernewfile")        self.launch("svn commit -m 'Adding anothernewfile'", match=r"Committed revision 16")        # Svnmerge block r15,16        os.chdir("../test-branch")        self.launch("svn up ..",                    error = False)        self.svnmerge("block -r 15,16 --head ../trunk")        self.launch("svn commit -F svnmerge-commit-message.txt",                    match = r"Committed revision 17")        self.svnmerge("merge --head ../trunk")        self.launch("svn commit -F svnmerge-commit-message.txt")        # Svnmerge rollback r15-16        self.svnmerge("rollback -vv --head ../trunk -r15-16",                      error = False,                      match = r"Nothing to rollback in revision range r15-16")    def testMergeAndRollback(self):        """Init svnmerge, modify source head, merge, rollback."""        # Initialize svnmerge        self.svnmerge2(["init", self.test_repo_url + "/trunk"])        self.launch("svn commit -F svnmerge-commit-message.txt",                    match = r"Committed revision 14")        os.remove("svnmerge-commit-message.txt")        # Make changes to trunk        os.chdir("../trunk")        open("newfile", "w").close()        self.launch("svn add newfile")        self.launch("svn commit -m 'Adding newfile'", match=r"Committed revision 15")        # Svnmerge merge r15        os.chdir("../test-branch")        self.svnmerge("merge -r 15 --head ../trunk")        self.launch("svn commit -F svnmerge-commit-message.txt",                    match = r"Committed revision 16")        # Svnmerge rollback r15        self.svnmerge("rollback -vv --head ../trunk -r15",                      match = r"-r 15:14")    def testBlockMergeAndRollback(self):        """Init svnmerge, block, modify head, merge, rollback."""        # Initialize svnmerge        self.svnmerge2(["init", self.test_repo_url + "/trunk"])        self.launch("svn commit -F svnmerge-commit-message.txt",                    match = r"Committed revision 14")        os.remove("svnmerge-commit-message.txt")        # Make changes to trunk        os.chdir("../trunk")        open("newfile", "w").close()        self.launch("svn add newfile")        self.launch("svn commit -m 'Adding newfile'", match=r"Committed revision 15")        open("anothernewfile", "w").close()        self.launch("svn add anothernewfile")        self.launch("svn commit -m 'Adding anothernewfile'", match=r"Committed revision 16")        # Svnmerge block r16, merge r15        os.chdir("../test-branch")        self.launch("svn up ..",                    error = False)        self.svnmerge("block -r 16 --head ../trunk")        self.launch("svn commit -F svnmerge-commit-message.txt",                    match = r"Committed revision 17")        self.svnmerge("merge --head ../trunk",                      nonmatch = r"A    anothernewfile",                      match = r"A    newfile")        self.launch("svn commit -F svnmerge-commit-message.txt",                    match = r"Committed revision 18")        # Svnmerge rollback revision range 15-18 (in effect only 15,17)        self.svnmerge("rollback -vv --head ../trunk -r15-18",                      nonmatch = r"D    anothernewfile")if __name__ == "__main__":    # If an existing template repository and working copy for testing    # exists, then always remove it.  This prevents any problems if    # this test suite is modified and there exists an older template    # directory that may be used.  This will also prevent problems if    # in a previous run of this script, the template was being created    # when the script was canceled, leaving it in an inconsistent    # state.    template_path = get_template_path()    if os.path.exists(template_path):        rmtree(template_path)    unittest.main()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -