• R/O
  • SSH
  • HTTPS

tortoisesvn: Commit


Commit MetaInfo

Revision12928 (tree)
Zeit2008-05-16 00:16:57
Autorstefankueng

Log Message

Patch from Roger Lipscombe:
Improve documentation of the issue tracker integration plugins for developers.

Ändern Zusammenfassung

Diff

--- trunk/contrib/issue-tracker-plugins/issue-tracker-plugins.txt (revision 12927)
+++ trunk/contrib/issue-tracker-plugins/issue-tracker-plugins.txt (revision 12928)
@@ -1,11 +1,71 @@
11 Issue Tracker Plugins
22 =====================
33
4-An issue tracker plugin is a COM object that implements the IBugTraqProvider
5-interface. It must also be registered as implementing the CATID_BugTraqProvider
6-component category.
4+What is this for?
5+-----------------
76
7+Imagine the following scenario:
88
9+ 1. Marvin the manager assigns a ticket or task to Dave, the developer, using
10+ the issue-tracking or task-management software.
11+ 2. Dave looks at his list of tasks using the issue-tracking software's front
12+ end (i.e. a web-dashboard). He picks something to work on this morning.
13+ 3. Dave fires up Visual Studio; hacks on some code; does some work toward
14+ the task.
15+ 4. Dave brings up TSVN's commit dialog. He types in a comment that lists,
16+ depending on coding standards:
17+ a) The ticket/task number of what he's been working on.
18+ b) Some comments about what he's changed.
19+ 5. He clicks OK, and his changes are committed to the repository.
20+ 6. The issue-tracking software monitors the SVN repository, watching for
21+ commits.It sees Dave's commit message, extracts the information from it,
22+ and updates the ticket appropriately.
23+ 7. Marvin looks in the task-management software, and can monitor the
24+ project's progress.
25+
26+As it stands, TSVN supports (most of) this admirably. For example, with the
27+Trac integration, I can put "See #43" or "Fixes #99" somewhere in the commit
28+message, and Trac's post-commit hook will update the tickets accordingly.
29+
30+However:
31+ 1. Dave has to keep the issue-tracker front-end open in order to look up the
32+ ticket numbers.
33+ 2. Some issue trackers want more information (e.g. time spent, time
34+ remaining), and it needs to be formatted more rigidly.
35+
36+So, the user story looks like this:
37+
38+ "From the TSVN commit dialog, the user should be able to display up a list of
39+ assigned tickets from the issue-tracker associated with that repository. The
40+ user should be able to pick one or more tasks from this list."
41+
42+ "This will populate the commit message with the information required by the
43+ issue-tracker's SVN server-side post-commit hook."
44+
45+ "This functionality should be available from the commit dialog, because the
46+ user may wish to choose which files to commit based on which ticket they
47+ select, or he may wish to refresh his memory about what's changed before
48+ selecting the appropriate ticket."
49+
50+
51+Implementing an issue tracker plugin
52+------------------------------------
53+
54+To write an integration plugin, you implement the IBugTraqProvider COM
55+interface, and register your object as implementing the "TortoiseSVN BugTraq
56+Providers" component category. This registration makes it easy for the
57+settings dialog to find a list of available plugins.
58+
59+The IBugTraqProvider interface is documented in the inc\IBugTraqProvider.idl
60+file.
61+
62+The component category is defined (in C++) as follows:
63+
64+// {3494FA92-B139-4730-9591-01135D5E7831}
65+DEFINE_GUID(CATID_BugTraqProvider,
66+ 0x3494fa92, 0xb139, 0x4730, 0x95, 0x91, 0x1, 0x13, 0x5d, 0x5e, 0x78, 0x31);
67+
68+
969 Example Plugins
1070 ---------------
1171
@@ -37,17 +97,19 @@
3797
3898 * IBugTraqProvider.idl
3999 This is a copy of the src\IBugTraqProvider\IBugTraqProvider.idl file; it's
40- provided for reference, but you should not need to use it.
100+ provided for reference; you'll probably use the files below.
41101
42102 * IBugTraqProvider_h.h, IBugTraqProvider_i.c
43103 These are the files you'll probably use if you implement a plugin in C++.
44104
45105 * Interop.BugTraqProvider.dll
46- Interop Assembly for implementing plugins in .NET. It's not yet a Primary
106+ Interop Assembly for implementing plugins in .NET. It's not a Primary
47107 Interop Assembly (PIA).
48108 The source code for this project is in the Interop.BugTraqProvider folder.
49109
110+The interface is documented in the .IDL file.
50111
112+
51113 Walkthrough: Creating an issue tracker plugin in C#
52114 ---------------------------------------------------
53115
Show on old repository browser