Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Atlassian Jira - TortoiseSVN Plugin for Issue Tracking and Easy Linking of Subversion Project with Jira Issue

0.00/5 (No votes)
30 Mar 2009 2  
Atlassian Jira - TortoiseSVN Plugin for Issue Tracking and Easy Linking of Subversion Project with Jira Issue

Introduction

This application is a plugin for TortoiseSVN. It integrates into your TortoiseSVN application.

If you use Atlassian Jira for issue tracking and TortoiseSVN for subversion repository management, you may want to manage the issue when working towards copy committing. This plugin helps you at this time.

Using the Code

JiraBrowserPlg DLL is the main plugin DLL. This is the source code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Interop.BugTraqProvider;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using JiraTortoBrowser;

namespace JiraTorto
{
    [ComVisible(true)]
    [ClassInterface(ClassInterfaceType.None)]
    [Guid("7C054A52-725F-4053-BFCF-44988D9BA5DE")]

    public class JiraTortoPlugin : IBugTraqProvider2, IBugTraqProvider
    {
        
        #region IBugTraqProvider2 Members

        public string GetCommitMessage(IntPtr hParentWnd, string parameters, 
		string commonRoot, string[] pathList, string originalMessage)
        {
            return GetCommitMessage2(hParentWnd, parameters, "", commonRoot, 
						pathList, originalMessage);
        }

        public string GetCommitMessage2(IntPtr hParentWnd, string parameters, 
	string commonURL, string commonRoot, string[] pathList, string originalMessage)
        {
            try
            {
                MainWindow window = new MainWindow();
                window.Activate();
                if (window.ShowDialog() == DialogResult.OK)
                {                                        
                    return (originalMessage + "\r\n" + window.SelectedIssue());
                }
                return originalMessage;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                throw;
            }            
        }

        public string GetLinkText(IntPtr hParentWnd, string parameters)
        {
            return "Show Issues...";
        }

        public bool HasOptions()
        {
            return true;
        }

        public string OnCommitFinished(IntPtr hParentWnd, string commonRoot, 
			string[] pathList, string logMessage, int revision)
        {            
            MainWindow form = new MainWindow();
            form.Show();
            
            return "an error happened while closing the issue";
        }

        public string ShowOptionsDialog(IntPtr hParentWnd, string parameters)
        {
            frmAccountSettings settings = new frmAccountSettings();
            if (settings.ShowDialog() != DialogResult.OK)
                return "";

            string options = settings.Text;
            return options;
        }

        public bool ValidateParameters(IntPtr hParentWnd, string parameters)
        {
            return true;
        }

        #endregion
    }
}

History

  • 30th March, 2009: Initial post

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here