Пример #1
0
        public virtual void TestWorkdirIsDotGit_CreateRepositoryFromWorkDirOnly()
        {
            FilePath       workdir = GetFile("workdir", "repo");
            FileRepository repo    = new FileRepositoryBuilder().SetWorkTree(workdir).Build();

            AssertGitdirPath(repo, "workdir", "repo", Constants.DOT_GIT);
        }
Пример #2
0
        public virtual void Test000_openrepo_alternate_index_file_and_objdirs()
        {
            FilePath   repo1Parent  = new FilePath(trash.GetParentFile(), "r1");
            FilePath   indexFile    = new FilePath(trash, "idx");
            FilePath   objDir       = new FilePath(trash, "../obj");
            FilePath   altObjDir    = ((ObjectDirectory)db.ObjectDatabase).GetDirectory();
            Repository repo1initial = new FileRepository(new FilePath(repo1Parent, Constants.
                                                                      DOT_GIT));

            repo1initial.Create();
            repo1initial.Close();
            FilePath       theDir = new FilePath(repo1Parent, Constants.DOT_GIT);
            FileRepository r      = new FileRepositoryBuilder().SetGitDir(theDir).SetObjectDirectory
                                        (objDir).AddAlternateObjectDirectory(altObjDir).SetIndexFile(indexFile).Build();

            //
            //
            //
            //
            AssertEqualsPath(theDir, r.Directory);
            AssertEqualsPath(theDir.GetParentFile(), r.WorkTree);
            AssertEqualsPath(indexFile, r.GetIndexFile());
            AssertEqualsPath(objDir, ((ObjectDirectory)r.ObjectDatabase).GetDirectory());
            NUnit.Framework.Assert.IsNotNull(r.Open(ObjectId.FromString("6db9c2ebf75590eef973081736730a9ea169a0c4"
                                                                        )));
            // Must close or the default repo pack files created by this test gets
            // locked via the alternate object directories on Windows.
            r.Close();
        }
Пример #3
0
        public virtual void TestNotBare_CreateRepositoryFromWorkDirOnly()
        {
            FilePath       workdir = GetFile("workdir", "repo");
            FileRepository repo    = new FileRepositoryBuilder().SetWorkTree(workdir).Build();

            NUnit.Framework.Assert.IsFalse(repo.IsBare);
            AssertWorkdirPath(repo, "workdir", "repo");
            AssertGitdirPath(repo, "workdir", "repo", Constants.DOT_GIT);
        }
Пример #4
0
        public virtual void TestBare_CreateRepositoryFromGitDirOnlyWithBareConfigTrue()
        {
            FilePath gitDir = GetFile("workdir", "repoWithConfig");

            SetBare(gitDir, true);
            FileRepository repo = new FileRepositoryBuilder().SetGitDir(gitDir).Build();

            NUnit.Framework.Assert.IsTrue(repo.IsBare);
        }
Пример #5
0
        public virtual void TestWorkdirIsParent_CreateRepositoryFromGitDirOnlyWithBareConfigFalse
            ()
        {
            FilePath gitDir = GetFile("workdir", "repoWithBareConfigTrue", "child");

            SetBare(gitDir, false);
            FileRepository repo = new FileRepositoryBuilder().SetGitDir(gitDir).Build();

            AssertWorkdirPath(repo, "workdir", "repoWithBareConfigTrue");
        }
Пример #6
0
        public virtual void TestNotBare_CreateRepositoryFromGitDirOnlyWithBareConfigFalse
            ()
        {
            FilePath gitDir = GetFile("workdir", "repoWithBareConfigFalse", "child");

            SetBare(gitDir, false);
            FileRepository repo = new FileRepositoryBuilder().SetGitDir(gitDir).Build();

            NUnit.Framework.Assert.IsFalse(repo.IsBare);
            AssertWorkdirPath(repo, "workdir", "repoWithBareConfigFalse");
            AssertGitdirPath(repo, "workdir", "repoWithBareConfigFalse", "child");
        }
Пример #7
0
        public virtual void TestNotBare_CreateRepositoryFromGitDirOnlyWithWorktreeConfig(
            )
        {
            FilePath gitDir   = GetFile("workdir", "repoWithConfig");
            FilePath workTree = GetFile("workdir", "treeRoot");

            SetWorkTree(gitDir, workTree);
            FileRepository repo = new FileRepositoryBuilder().SetGitDir(gitDir).Build();

            NUnit.Framework.Assert.IsFalse(repo.IsBare);
            AssertWorkdirPath(repo, "workdir", "treeRoot");
            AssertGitdirPath(repo, "workdir", "repoWithConfig");
        }
Пример #8
0
        public virtual void AbsoluteGitDirRef()
        {
            FileRepository repo1  = CreateWorkRepository();
            FilePath       dir    = CreateTempDirectory("dir");
            FilePath       dotGit = new FilePath(dir, Constants.DOT_GIT);

            new FileWriter(dotGit).Append("gitdir: " + repo1.Directory.GetAbsolutePath()).Close
                ();
            FileRepositoryBuilder builder = new FileRepositoryBuilder();

            builder.SetWorkTree(dir);
            builder.SetMustExist(true);
            FileRepository repo2 = builder.Build();

            NUnit.Framework.Assert.AreEqual(repo1.Directory, repo2.Directory);
            NUnit.Framework.Assert.AreEqual(dir, repo2.WorkTree);
        }
Пример #9
0
        public virtual void Test000_openrepo_default_workDirSet()
        {
            FilePath   repo1Parent  = new FilePath(trash.GetParentFile(), "r1");
            Repository repo1initial = new FileRepository(new FilePath(repo1Parent, Constants.
                                                                      DOT_GIT));

            repo1initial.Create();
            repo1initial.Close();
            FilePath       theDir = new FilePath(repo1Parent, Constants.DOT_GIT);
            FileRepository r      = new FileRepositoryBuilder().SetWorkTree(repo1Parent).Build();

            AssertEqualsPath(theDir, r.Directory);
            AssertEqualsPath(repo1Parent, r.WorkTree);
            AssertEqualsPath(new FilePath(theDir, "index"), r.GetIndexFile());
            AssertEqualsPath(new FilePath(theDir, "objects"), ((ObjectDirectory)r.ObjectDatabase
                                                               ).GetDirectory());
        }
Пример #10
0
        public virtual void RelativeGitDirRef()
        {
            FileRepository repo1 = CreateWorkRepository();
            FilePath       dir   = new FilePath(repo1.WorkTree, "dir");

            NUnit.Framework.Assert.IsTrue(dir.Mkdir());
            FilePath dotGit = new FilePath(dir, Constants.DOT_GIT);

            new FileWriter(dotGit).Append("gitdir: ../" + Constants.DOT_GIT).Close();
            FileRepositoryBuilder builder = new FileRepositoryBuilder();

            builder.SetWorkTree(dir);
            builder.SetMustExist(true);
            FileRepository repo2 = builder.Build();

            NUnit.Framework.Assert.AreEqual(repo1.Directory, repo2.Directory);
            NUnit.Framework.Assert.AreEqual(dir, repo2.WorkTree);
        }
Пример #11
0
        public virtual void Test000_openrepo_default_relative_workdirconfig()
        {
            FilePath repo1Parent = new FilePath(trash.GetParentFile(), "r1");
            FilePath workdir     = new FilePath(trash.GetParentFile(), "rw");

            FileUtils.Mkdir(workdir);
            FileRepository repo1initial = new FileRepository(new FilePath(repo1Parent, Constants
                                                                          .DOT_GIT));

            repo1initial.Create();
            FileBasedConfig cfg = ((FileBasedConfig)repo1initial.GetConfig());

            cfg.SetString("core", null, "worktree", "../../rw");
            cfg.Save();
            repo1initial.Close();
            FilePath       theDir = new FilePath(repo1Parent, Constants.DOT_GIT);
            FileRepository r      = new FileRepositoryBuilder().SetGitDir(theDir).Build();

            AssertEqualsPath(theDir, r.Directory);
            AssertEqualsPath(workdir, r.WorkTree);
            AssertEqualsPath(new FilePath(theDir, "index"), r.GetIndexFile());
            AssertEqualsPath(new FilePath(theDir, "objects"), ((ObjectDirectory)r.ObjectDatabase
                                                               ).GetDirectory());
        }