Ejemplo n.º 1
0
        private void OnMakeCloneClick(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(SelectedPath))
            {
                return;
            }
            if (!IsEnabledItemSelected())
            {
                //MessageBox.Show(item.ToolTipText, "Problem", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                return;
            }

            if (!Directory.Exists(_parentDirectoryToPutCloneIn))
            {
                MessageBox.Show(
                    string.Format(LocalizationManager.GetString("Messages.MissingDirectoryError",
                                                                @"Sorry, the calling program told Chorus to place the new project inside {0}, but that directory does not exist."),
                                  _parentDirectoryToPutCloneIn), LocalizationManager.GetString("Common.Problem", "Problem"), MessageBoxButtons.OK, MessageBoxIcon.Stop);
                return;
            }

            var target = Path.Combine(_parentDirectoryToPutCloneIn, Path.GetFileName(SelectedPath));

            try
            {
                UpdateDisplay(State.MakingClone);

                PathToNewlyClonedFolder = _model.MakeClone(SelectedPath, _parentDirectoryToPutCloneIn, _progress);

                UpdateDisplay(State.Success);


                using (SoundPlayer player = new SoundPlayer(Properties.Resources.finishedSound))
                {
                    player.PlaySync();
                }
            }
            catch (Exception error)
            {
                using (SoundPlayer player = new SoundPlayer(Properties.Resources.errorSound))
                {
                    player.PlaySync();
                }
                _failureMessage = error.Message;
                UpdateDisplay(State.Error);
            }
        }
Ejemplo n.º 2
0
        public void MakeClone_TargetExists_CreatesCloneInAnotherFolder()
        {
            using (var repo = new RepositorySetup("source"))
            using (var f = new TemporaryFolder("clonetest"))
            {
                var model = new CloneFromUsb();
                var progress = new ConsoleProgress();
                progress.ShowVerbose = true;
                var extantFolder = f.Combine(RepositorySetup.ProjectName);
                Directory.CreateDirectory(extantFolder);
                // Make a subfolder, which will force it to make a new folder, since an empty folder is deleted.
                var extantSubfolderPath = Path.Combine(extantFolder, "ChildFolder");
                Directory.CreateDirectory(extantSubfolderPath);

                var cloneFolder = model.MakeClone(repo.ProjectFolder.Path, f.Path, progress);
                Assert.AreEqual(extantFolder + "1", cloneFolder);
                Assert.IsTrue(Directory.Exists(extantFolder + "1"));
            }
        }
Ejemplo n.º 3
0
        public void MakeClone_TargetExists_CreatesCloneInWhenTargetIsEmpty()
        {
            using (var repo = new RepositorySetup("source"))
            using (var f = new TemporaryFolder("clonetest"))
            {
                var model = new CloneFromUsb();
                var progress = new ConsoleProgress();
                progress.ShowVerbose = true;
                var extantFolder = f.Combine(RepositorySetup.ProjectName);
                Directory.CreateDirectory(extantFolder);

                var cloneFolder = model.MakeClone(repo.ProjectFolder.Path, f.Path, progress);
                Assert.AreEqual(extantFolder, cloneFolder);
                Assert.IsTrue(Directory.Exists(extantFolder));
                Assert.IsFalse(Directory.Exists(extantFolder + "1"));
            }
        }
Ejemplo n.º 4
0
 public void MakeClone_NoProblems_MakesClone()
 {
     using(var repo = new RepositorySetup("source"))
     using (var f = new TemporaryFolder("clonetest"))
     {
         var model = new CloneFromUsb();
         var progress = new ConsoleProgress();
         progress.ShowVerbose = true;
         model.MakeClone(repo.ProjectFolder.Path, f.Path, progress);
         Assert.IsTrue(Directory.Exists(f.Combine(RepositorySetup.ProjectName, ".hg")));
     }
 }