Exemplo n.º 1
0
        public GollumEngine(SubversionArguments subversionArguments, ProjectSettings projectSettings)
        {
            var reviewBoardUrl = ConfigurationManager.AppSettings["ReviewBoardUrl"];

            if (String.IsNullOrEmpty(reviewBoardUrl))
            {
                throw new InvalidOperationException("ReviewBoard url is required.");
            }

            _projectSettings     = projectSettings;
            _subversionArguments = subversionArguments;

#if TEST
            _patchCreator       = new DummyPatchCreator();
            _reviewBoardHandler = new DummyReviewBoardHandler();
#if !NOBUGZILLA
            _bugzillaClient = new DummyBugzillaRestClient();
#else
            _bugzillaClient = null;
#endif
#else
            _patchCreator       = new SvnPatchCreator();
            _reviewBoardHandler = new ReviewBoardRestClient(reviewBoardUrl);
            var bugzillaUrl = ConfigurationManager.AppSettings["BugzillaUrl"];
            if (!String.IsNullOrEmpty(bugzillaUrl))
            {
                _bugzillaClient = new BugzillaRestClient(bugzillaUrl);
            }
#endif
        }
Exemplo n.º 2
0
 public Task <string> CreatePatchAsync(SubversionArguments arguments)
 {
     return(Task.Run(() =>
     {
         Thread.Sleep(3000);
         return @"C:\test.diff";
     }));
 }
Exemplo n.º 3
0
 public static Task <string> GetMessageForRevision(SubversionArguments svnArguments)
 {
     return(Task.Run(() =>
     {
         Thread.Sleep(3000);
         return string.Format("Test commit message for revision range {0} - {1}. Fixed bug #313.",
                              svnArguments.RevisionFrom, svnArguments.RevisionTo);
     }));
 }
Exemplo n.º 4
0
        private static SubversionArguments ReadCommandLineArguments(string[] args)
        {
            if (args.Length < 2 || args.Length > 3)
            {
                ShowHelp();
                return(null);
            }

            int revision;

            if (!int.TryParse(args[1], out revision))
            {
                ShowHelp();
                Console.Error.WriteLine("Revision must be integer");
                return(null);
            }

            string cwd = Directory.GetCurrentDirectory();

            if (args.Length == 3)
            {
                cwd = args[2];
                if (!Directory.Exists(cwd))
                {
                    ShowHelp();
                    Console.Error.WriteLine("Cwd doesn't exist");
                    return(null);
                }
            }

            var svnArgs = new SubversionArguments
            {
                RevisionTo = revision,
                Cwd        = cwd,
                LocalProjectRootDirectory = FindProjectRootDirectory(cwd, ProjectSettings.DefaultFileName)
            };

            try
            {
#if TEST
                svnArgs.Message = DummyPatchCreator.GetMessageForRevision(svnArgs).Result;
#else
                svnArgs.Message = SvnPatchCreator.GetMessageForRevision(svnArgs).Result;
#endif
            }
            catch (Exception ex)
            {
                Console.Error.WriteLine("Unable to get message for revision: " + ex.Message);
                return(null);
            }

            return(svnArgs);
        }
Exemplo n.º 5
0
 public GollumForm(ProjectSettings projectSettings, SubversionArguments subversionArguments)
 {
     InitializeComponent();
     using (var graphics = CreateGraphics())
     {
         _dpiX = graphics.DpiX;
         _dpiY = graphics.DpiY;
     }
     _projectSettings     = projectSettings;
     _subversionArguments = subversionArguments;
     _bugMatcher          = new Regex(@"(?<=(fixed bug #)|(fix for bug #)|(fixed bug )|(fix for bug ))\s?\d+", RegexOptions.Compiled | RegexOptions.IgnoreCase);
     ToggleBugzillaVisibility(false);
 }
Exemplo n.º 6
0
 private static ProjectSettings LoadProjectSettings(SubversionArguments subversionArguments)
 {
     return(ProjectSettings.Load(Path.Combine(subversionArguments.LocalProjectRootDirectory, ProjectSettings.DefaultFileName)));
 }
Exemplo n.º 7
0
        private async void ButtonGoClick(object sender, EventArgs e)
        {
            int revisionTo;
            int revisionFrom = -1;

            if (string.IsNullOrWhiteSpace(textBoxProjectDirectory.Text) || !Directory.Exists(textBoxProjectDirectory.Text) ||
                string.IsNullOrWhiteSpace(textBoxRevisionTo.Text) || !int.TryParse(textBoxRevisionTo.Text, out revisionTo) ||
                (!string.IsNullOrWhiteSpace(textBoxRevisionFrom.Text) && !int.TryParse(textBoxRevisionFrom.Text, out revisionFrom)) ||
                revisionFrom >= revisionTo
                )
            {
                MessageBox.Show("Fill fields better");
                return;
            }

            var cwd = textBoxProjectDirectory.Text;

#if !TEST
            string projectRootDirectory;
            try
            {
                projectRootDirectory = Program.FindProjectRootDirectory(cwd, ProjectSettings.DefaultFileName);
            }
            catch
            {
                MessageBox.Show("Directory not gollum-compatible.");
                return;
            }
#else
            const string projectRootDirectory = "C:\\";
#endif
            var subversionArguments = new SubversionArguments
            {
                RevisionTo   = revisionTo,
                RevisionFrom = revisionFrom,
                Cwd          = cwd,
                LocalProjectRootDirectory = projectRootDirectory
            };

            buttonGo.Enabled = false;

            try
            {
#if TEST
                subversionArguments.Message = await DummyPatchCreator.GetMessageForRevision(subversionArguments);

                ProjectSettings = new ProjectSettings
                {
                    RepositoryBasePath = "/trunk", ReviewBoardGroup = "Ware", ReviewBoardRepositoryName = "Ware"
                };
#else
                subversionArguments.Message = await SvnPatchCreator.GetMessageForRevision(subversionArguments);

                ProjectSettings = ProjectSettings.Load(Path.Combine(subversionArguments.LocalProjectRootDirectory, ProjectSettings.DefaultFileName));
#endif
                SubversionArguments = subversionArguments;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Unable to get message for revision: " + ex.Message);
                buttonGo.Enabled = true;
                return;
            }

            DialogResult = DialogResult.OK;
            Close();
        }