65.9K
CodeProject 正在变化。 阅读更多。
Home

Atlassian Jira - 用于问题跟踪和 Subversion 项目与 Jira 问题轻松链接的 TortoiseSVN 插件

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.57/5 (5投票s)

2009年3月30日

CPOL
viewsIcon

116393

downloadIcon

3396

Atlassian Jira - 用于问题跟踪和 Subversion 项目与 Jira 问题轻松链接的 TortoiseSVN 插件

引言

这个应用程序是 TortoiseSVN 的一个插件。它会集成到你的 TortoiseSVN 应用程序中。

如果你使用 Atlassian Jira 进行问题跟踪,并使用 TortoiseSVN 进行子版本库管理,你可能希望在提交代码时管理问题。这个插件可以帮助你完成这项工作。

Using the Code

JiraBrowserPlg DLL 是主插件 DLL。这是源代码

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
    }
}

历史

  • 2009 年 3 月 30 日:首次发布
© . All rights reserved.