示例#1
0
        public void RepositoryOperation_SetupRepository()
        {
            SvnSandBox      sbox = new SvnSandBox(this);
            Uri             uri  = sbox.CreateRepository(SandBoxRepository.Empty);
            SvnCommitResult cr;

            SvnRepositoryOperationArgs oa = new SvnRepositoryOperationArgs();

            oa.LogMessage = "Everything in one revision";

            using (SvnMultiCommandClient mucc = new SvnMultiCommandClient(uri, oa))
            {
                mucc.CreateDirectory("trunk");
                mucc.CreateDirectory("branches");
                mucc.CreateDirectory("tags");
                mucc.CreateDirectory("trunk/src");
                mucc.SetProperty("", "svn:auto-props", "*.cs = svn:eol-style=native");
                mucc.SetProperty("", "svn:global-ignores", "bin obj");

                mucc.CreateFile("trunk/README", new MemoryStream(Encoding.UTF8.GetBytes("Welcome to this project")));
                mucc.SetProperty("trunk/README", "svn:eol-style", "native");

                Assert.That(mucc.Commit(out cr)); // Commit r1
                Assert.That(cr, Is.Not.Null);
            }

            using (SvnClient svn = new SvnClient())
            {
                Collection <SvnListEventArgs> members;
                svn.GetList(uri, out members);

                Assert.That(members, Is.Not.Empty);

                MemoryStream          ms = new MemoryStream();
                SvnPropertyCollection props;
                svn.Write(new Uri(uri, "trunk/README"), ms, out props);

                Assert.That(props, Is.Not.Empty);
                Assert.That(Encoding.UTF8.GetString(ms.ToArray()), Is.EqualTo("Welcome to this project"));
                Assert.That(props.Contains("svn:eol-style"));


                Collection <SvnLogEventArgs> la;
                SvnLogArgs ll = new SvnLogArgs();
                ll.Start = 1;
                svn.GetLog(uri, ll, out la);
                Assert.That(la, Is.Not.Empty);
                Assert.That(la[0].LogMessage, Is.EqualTo("Everything in one revision"));
            }
        }
        public void RepositoryOperation_SetupRepository()
        {
            SvnSandBox sbox = new SvnSandBox(this);
            Uri uri = sbox.CreateRepository(SandBoxRepository.Empty);
            SvnCommitResult cr;

            SvnRepositoryOperationArgs oa = new SvnRepositoryOperationArgs();
            oa.LogMessage = "Everything in one revision";

            using (SvnMultiCommandClient mucc = new SvnMultiCommandClient(uri, oa))
            {
                mucc.CreateDirectory("trunk");
                mucc.CreateDirectory("branches");
                mucc.CreateDirectory("tags");
                mucc.CreateDirectory("trunk/src");
                mucc.SetProperty("", "svn:auto-props", "*.cs = svn:eol-style=native");
                mucc.SetProperty("", "svn:global-ignores", "bin obj");

                mucc.CreateFile("trunk/README", new MemoryStream(Encoding.UTF8.GetBytes("Welcome to this project")));
                mucc.SetProperty("trunk/README", "svn:eol-style", "native");

                Assert.That(mucc.Commit(out cr)); // Commit r1
                Assert.That(cr, Is.Not.Null);
            }

            using (SvnClient svn = new SvnClient())
            {
                Collection<SvnListEventArgs> members;
                svn.GetList(uri, out members);

                Assert.That(members, Is.Not.Empty);

                MemoryStream ms = new MemoryStream();
                SvnPropertyCollection props;
                svn.Write(new Uri(uri, "trunk/README"), ms, out props);

                Assert.That(props, Is.Not.Empty);
                Assert.That(Encoding.UTF8.GetString(ms.ToArray()), Is.EqualTo("Welcome to this project"));
                Assert.That(props.Contains("svn:eol-style"));

                Collection<SvnLogEventArgs> la;
                SvnLogArgs ll = new SvnLogArgs();
                ll.Start = 1;
                svn.GetLog(uri, ll, out la);
                Assert.That(la, Is.Not.Empty);
                Assert.That(la[0].LogMessage, Is.EqualTo("Everything in one revision"));
            }
        }
        public void RepositoryOperation_OpenDirect()
        {
            SvnSandBox sbox = new SvnSandBox(this);
            Uri uri = sbox.CreateRepository(SandBoxRepository.Empty);

            using (SvnMultiCommandClient mucc = new SvnMultiCommandClient(uri))
            {
                SvnCommitResult cr;
                Assert.That(mucc.Commit(out cr));

                Assert.That(cr, Is.Null);
            }

            using (SvnMultiCommandClient mucc = new SvnMultiCommandClient(uri))
            {
                SvnCommitResult cr;
                bool tick = false;

                mucc.Committing += delegate(object sender, SvnCommittingEventArgs e)
                {
                    Assert.That(e.Items, Is.Not.Empty);
                    Assert.That(e.Items[0].Uri, Is.EqualTo(new Uri(uri, "A/")));
                    Assert.That(e.Items[0].NodeKind, Is.EqualTo(SvnNodeKind.Directory));
                    Assert.That(e.LogMessage, Is.Null);

                    e.LogMessage = "New message";
                    tick = true;
                };

                mucc.CreateDirectory("A");

                Assert.That(mucc.Commit(out cr));
                Assert.That(tick, "Ticked");

                Assert.That(cr, Is.Not.Null);
                Assert.That(cr.Revision, Is.EqualTo(1));
            }
        }
示例#4
0
        public void RepositoryOperation_OpenDirect()
        {
            SvnSandBox sbox = new SvnSandBox(this);
            Uri        uri  = sbox.CreateRepository(SandBoxRepository.Empty);

            using (SvnMultiCommandClient mucc = new SvnMultiCommandClient(uri))
            {
                SvnCommitResult cr;
                Assert.That(mucc.Commit(out cr));

                Assert.That(cr, Is.Null);
            }

            using (SvnMultiCommandClient mucc = new SvnMultiCommandClient(uri))
            {
                SvnCommitResult cr;
                bool            tick = false;

                mucc.Committing += delegate(object sender, SvnCommittingEventArgs e)
                {
                    Assert.That(e.Items, Is.Not.Empty);
                    Assert.That(e.Items[0].Uri, Is.EqualTo(new Uri(uri, "A/")));
                    Assert.That(e.Items[0].NodeKind, Is.EqualTo(SvnNodeKind.Directory));
                    Assert.That(e.LogMessage, Is.Null);

                    e.LogMessage = "New message";
                    tick         = true;
                };

                mucc.CreateDirectory("A");

                Assert.That(mucc.Commit(out cr));
                Assert.That(tick, "Ticked");

                Assert.That(cr, Is.Not.Null);
                Assert.That(cr.Revision, Is.EqualTo(1));
            }
        }
示例#5
0
        public Uri CreateRepository(SandBoxRepository type)
        {
            string dir = GetTempDir("repos");

            using (SvnRepositoryClient rc = new SvnRepositoryClient())
            {
                rc.UseDefaultConfiguration(); // Don't load config

                SvnCreateRepositoryArgs cra = new SvnCreateRepositoryArgs();

                if (type == SandBoxRepository.EmptyNoMerge)
                {
                    cra.RepositoryCompatibility = SvnRepositoryCompatibility.Subversion14;
                }
                rc.CreateRepository(dir, cra);

                Uri uri = SvnTools.LocalPathToUri(dir, false);

                switch (type)
                {
                case SandBoxRepository.Empty:
                    break;

                case SandBoxRepository.Default:
                case SandBoxRepository.DefaultBranched:
                    SvnRepositoryOperationArgs ra = new SvnRepositoryOperationArgs();
                    ra.LogMessage = "r1";
                    using (SvnMultiCommandClient mucc = new SvnMultiCommandClient(uri, ra))
                    {
                        mucc.CreateDirectory("trunk");
                        mucc.CreateDirectory("trunk/src");
                        mucc.CreateDirectory("branches");
                        mucc.CreateDirectory("branches/A");
                        mucc.CreateDirectory("branches/B");
                        mucc.CreateFile("trunk/README.txt", new MemoryStream(Encoding.UTF8.GetBytes("Read me, please?\n")));
                        mucc.CreateFile("trunk/src/file1.cs", new MemoryStream(Encoding.UTF8.GetBytes("using SharpSvn;\n")));
                        mucc.CreateFile("trunk/src/file2.vb", new MemoryStream(Encoding.UTF8.GetBytes("Imports SharpSvn;\n")));
                        mucc.CreateFile("trunk/src/file3.cpp", new MemoryStream(Encoding.UTF8.GetBytes("using namespace SharpSvn;\n")));
                        mucc.SetProperty("trunk/src/file3.cpp", SvnPropertyNames.SvnEolStyle, "native");
                        mucc.CreateFile("trunk/src/file4.fs", new MemoryStream(Encoding.UTF8.GetBytes("namespace SharpSvn\n")));
                        mucc.SetProperty("trunk/src/file4.fs", SvnPropertyNames.SvnEolStyle, "LF");

                        mucc.Commit();
                    }
                    if (type == SandBoxRepository.Default)
                    {
                        break;
                    }
                    ra.LogMessage = "r2";
                    using (SvnMultiCommandClient mucc = new SvnMultiCommandClient(uri, ra))
                    {
                        mucc.CreateDirectory("branches/C");
                        mucc.Copy("trunk", "branches/trunk-r1");
                        mucc.UpdateFile("trunk/README.txt", new MemoryStream(Encoding.UTF8.GetBytes("Read me, please?\n\"Ok, read!\"\n")));

                        mucc.Commit();
                    }
                    ra.LogMessage = "r3";
                    using (SvnMultiCommandClient mucc = new SvnMultiCommandClient(uri, ra))
                    {
                        mucc.CreateDirectory("branches/D");
                        mucc.Copy("trunk", "branches/trunk-r2");
                        mucc.UpdateFile("trunk/README.txt", new MemoryStream(Encoding.UTF8.GetBytes("Read me, please?\n\"Ok, read!\"\n")));

                        mucc.Commit();
                    }
                    ra.LogMessage = "r4";
                    using (SvnMultiCommandClient mucc = new SvnMultiCommandClient(uri, ra))
                    {
                        mucc.CreateDirectory("branches/E");
                        mucc.Copy("trunk", "branches/trunk-r3");
                        mucc.UpdateFile("trunk/README.txt", new MemoryStream(Encoding.UTF8.GetBytes("Read me, please?\n\"Ok, read!\"\nNo way!\n")));

                        mucc.Commit();
                    }
                    break;

                case SandBoxRepository.MergeScenario:
                    rc.LoadRepository(dir, typeof(SvnSandBox).Assembly.GetManifestResourceStream("SharpSvn.TestBuilder.Resources.MergeScenario.repos"));
                    break;

                case SandBoxRepository.AnkhSvnCases:
                    BuildAnkhCases(uri);
                    break;

                case SandBoxRepository.Greek:
                    BuildGreek(uri);
                    break;

                default:
                    break;
                }
            }

            return(SvnTools.LocalPathToUri(dir, true));
        }