|
|
| VSS Plugin 1.0-beta Released This new beta version contains several bugfixes, performance improvements and one new feature (that was requested by several beta testers): the date format that is used by ss.exe when generating the history log output depends on your Windows' "Regional Settings". Now you can configure the same date format for the plugin so that it can precisely parse the dates from the VSS output.
|
Description / Features
This plugin displays the Microsoft Visual SourceSafe commit information (along with the changed paths) related to JIRA issues, projects or project versions.
Usage is simple:
- Install the plugin as described below.
- When checking-in modifications to VSS, include the key(s) of the related issue(s) in the check-in comments. Those comments will be automatically indexed by the plugin and will appear in the "VSS Commits" tab on the appropriate JIRA projects and issues. For example:
CSS alignment problem solved. This will fix BUG-10 and TST-3.
In the UI the plugin will add a new tab to the project details screen, and another to the issue details screen:
|
|
|
Installation
- Download the JIRA Visual SourceSafe Plugin ZIP from the Atlassian website
- Unpack the ZIP archive and install the following files:
- Copy the plug-in JAR file jira-vss-plugin-xxx.jar to the JIRA_HOME/atlassian-jira/WEB-INF/lib directory.
- Copy the Ant JAR files ant.jar and ant-nodepds.jar to the JIRA_HOME/atlassian-jira/WEB-INF/lib directory. (The plugin is using the <MSVSS> task defintions, so Ant 1.7 must be on your classpath. If you have it installed somewhere else, you can add that directory to your CLASSPATH as well.)
- Copy vss-jira-plugin.properties to the JIRA_HOME/atlassian-jira/WEB-INF/classes directory
- Configure the plugin by editing this file. All settings are explained and documented in the properties file.
- Obtain a 30 day evaluation license from your My Account page on the Atlassian website.
- Copy the license file vss-jira-plugin.license to the JIRA_HOME/atlassian-jira/WEB-INF/classes directory.
- Restart JIRA.
- To confirm that the plug-in has been successfully installed, go to the project details screen of any project and you should see a new tab VSS Commits there.
Screenshots
|
Screenshots (view as slideshow) |
||||||
|---|---|---|---|---|---|---|
|
|
|
|
||||
| Tab in the project screen | Tab in the issue screen | Commits related to a version | ||||
|
|
|
|
||||
| Commits related to an issue | Commits related to a project (large) | Commits related to a project (small) | ||||
Version History
| Ver. | Date | Notes |
|---|---|---|
| 1.0-beta5 | 13112007 | Beta with a tons of fixes, performance improvements and configurable log date format |
| 1.0-beta | 23072007 | First version for beta testers and evaluators |
FAQ
Q. What MS VSS versions are supported?
A. This plugin has been developed with Visual SourceSafe 2005, as it is most current version. It should, however, work with any other VSS version as long as their commandline parameters and history output are identical.
Q. Will this plugin conflict with other JIRA VCS plugins (like Subversion or Perforce)?
A. No.
Q. Does it support the deployment type when JIRA and the MSVSS server (and databases) are located on the same server?
A. Yes, this is the simplest kind of deployment. You can find all instructions how to configure it in vss-jira-plugin.properties.
Q. Does it support the deployment type when JIRA and the MSVSS server (and databases) are located on different servers in the same LAN?
A. Yes. You can find all instructions how to configure it in vss-jira-plugin.properties.
Q. Does it support MSVSS remoting over HTTP?
A. No, currently not. The reason is simple: ss.exe (the default commandline client shipped with MSVSS) does not support remoting! It is possible to overcome this limitation in future releases, so if you need it, please post a feature request to our JIRA (or vote for the feature is it's already there).
Q. After I commit a modification, When will it appear?
A. The indexing is performed by a service (a background thread in JIRA) that is periodically invoked. How frequently this job is fired can be configured in JIRA's Administration section: go to Administration, Services and change the delay value of Visual SourceSafe Revision Indexer Service.
Q. Will this work on a non-Windows server?
A. Unfortunately, not. The plugin relise on the VSS commandline client ss.exe, which is available only on Windows.
Troubleshooting
Most important is to check whether the plugin can get the repository history. You can simulate the plugin behavior by manually launching the SourceSafe commandline executable ss.exe. First set SSDIR to point to your repository:
set SSDIR=<value of the srcsafeIni.dir property in vss-jira-plugin.properties config file, but with single backslashes>
...and then launch SourceSafe:
<value of the ssExe.dir property with single backslashes>\ss.exe History -R <value of the vss.project.1 or vss.project.2 or similar property>
If you see valid log output, then it should be fine, but make sure that the date format is valid. Currently the plugin expects dates in "M/dd/yyh:mma" format. (This will be configurable later, but for now, you can set your Windows date format in "Control Panel" / "Regional and Language Options".)
Q. There is something wrong here, but from the log I can't see what's going on.
A. To enable more verbose logging from the plugin, add the following lines to your log4j.properties:
log4j.category.com.atlassian.jira.plugin.ext.vss=DEBUG, console, filelog
log4j.additivity.com.atlassian.jira.plugin.ext.vss=false
Q. I've double checked all settings, but it still doesn't work.
A. This is the most important test:
- check your vss-jira-plugin.properties in the JIRA classes directory
- set your SSDIR environment variable to the value of srcsafeIni.dir
- launch ss.exe with the ssExe.dir path prefix and try to get a history of the project database like this:
"\Program Files\Microsoft Visual SourceSafe\ss.exe" History $/TestA
- make sure it works, otherwise the plugin can't launch the client, either
Q. My path settings for ssExe.dir and srcsafeIni.dir are not picked up correctly.
A. Make sure that you escape your backslash characters! That means the UNC paths must start with 4 backslash characters like this:
srcsafeIni.dir=\\\\MYSERVER\\shareddir\\databases\\test
Q. I see the message Updating index on X repositories in the log and then JIRA hangs, nothing happens and the process is eating all CPU time.
A. Most likely, your VSS username and/or your password is wrong and the plugin can't sign in to VSS. In this case ss.exe will wait until valid credentials entered (forever). Check whether the correct user account started JIRA, and whether the vss.username and vss.password properties are valid in vss-jira-plugin.properties.
Q. I get a lot of Unable to parse date exceptions.
A. The date format expected by the plugin is not correctly set. For details, see the inline comments in the configuration file.




Comments (34)
Jul 28, 2007
Aleksei Kachanov says:
Do U plan develop such plugin for TFS (Team Foundation Server)?Do U plan develop such plugin for TFS (Team Foundation Server)?
Jul 28, 2007
Ferenc Kiss says:
Thank you for asking, Aleksei. Yes, supporting TFS is planned (it's the next log...Thank you for asking, Aleksei.
Yes, supporting TFS is planned (it's the next logical step), but before that we want to achieve production quality with the current set of features. Please post the feature request to support TFS if you would like to see that.
Feco
Sep 21, 2007
Gert-Jan Bartelds says:
Hi, I've just installed the plugin in JIRA 3.10.2. I also installed Ant 1.7 and ...Hi, I've just installed the plugin in JIRA 3.10.2. I also installed Ant 1.7 and added %ANT_HOME%\lib\ant.jar to the CLASSPATH constructed in the setclasspath.bat batch file (I am starting JIRA manually for now). Changed the log4j settings to see what is going on, and used the plugin's config file to point at a very small VSS repo, containing only one file, with two revisions, both having an issue key in their check-in comments.
From the logfile I can see the plugin is running, is connecting to the VSS repo, and is finding the one file with its two revisions. However, I see a runtime error (see below for cleaned up logfile) and the VSS Commit tabs in JIRA remain blank. Any idea what is going on?? (And is this the proper place to ask??)
Thanks.
2007-09-21 16:07:59,362 main DEBUG [ext.vss.license.VssLicenseManager] Loading license
2007-09-21 16:07:59,393 main INFO [ext.vss.license.VssLicenseManager] License successfully loaded: "VSS: Evaluation" for "Bell ID"
2007-09-21 16:07:59,393 main INFO [manager.impl.vss.VssScmManager] Loading configuration from "vss-jira-plugin"
2007-09-21 16:07:59,393 main DEBUG [ext.vss.indexer.RevisionIndexer] Initializing indexed repositories
2007-09-21 16:07:59,393 main DEBUG [ext.vss.indexer.RevisionIndexer] Adding repository "$/jira" to index
2007-09-21 16:07:59,393 main INFO [ext.vss.indexer.RevisionIndexer] 1 indexed repositories found
2007-09-21 16:08:00,393 main INFO [atlassian.jira.upgrade.ConsistencyCheckImpl] Starting JIRA Enterprise Edition, Version: 3.10.2-#262
2007-09-21 16:08:00,393 main INFO [atlassian.jira.upgrade.ConsistencyCheckImpl] Configured to use database: oracle10g
2007-09-21 16:08:00,486 JiraQuartzScheduler_Worker-1 INFO [ext.vss.indexer.RevisionIndexer] Updating index on 1 repositories
2007-09-21 16:08:00,486 JiraQuartzScheduler_Worker-1 DEBUG [ext.vss.indexer.RevisionIndexer] Repository "$/jira": updating latest indexed revision
2007-09-21 16:08:00,517 JiraQuartzScheduler_Worker-1 DEBUG [ext.vss.indexer.RevisionIndexer] Repository "$/jira": latest indexed revision is "", latest is "9223372036854775807"
2007-09-21 16:08:00,517 JiraQuartzScheduler_Worker-1 DEBUG [ext.vss.indexer.RevisionIndexer] Repository "$/jira": retrieving revisions from "" to "9223372036854775807"
2007-09-21 16:08:00,580 JiraQuartzScheduler_Worker-1 DEBUG [provider.impl.vss.VssHistoryAnalyzerOutputStream] Starting analysis
2007-09-21 16:08:00,689 Thread-4 DEBUG [provider.impl.vss.VssHistoryAnalyzerOutputStream] Starting new change set [1190381820000] "null"
2007-09-21 16:08:00,689 Thread-3 DEBUG [provider.impl.vss.VssHistoryAnalyzerOutputStream] Starting new change set [1190381820000] "null"
2007-09-21 16:08:00,689 Thread-4 DEBUG [provider.impl.vss.VssHistoryAnalyzerOutputStream] Adding change file A "$/.../jira.txt" null -> null
2007-09-21 16:08:00,689 Thread-3 DEBUG [provider.impl.vss.VssHistoryAnalyzerOutputStream] Adding change file A "$/.../jira.txt" null -> null
2007-09-21 16:08:00,689 JiraQuartzScheduler_Worker-1 DEBUG [provider.impl.vss.VssHistoryAnalyzerOutputStream] Analysis finished
2007-09-21 16:08:00,689 JiraQuartzScheduler_Worker-1 DEBUG [provider.impl.vss.VssScmProvider] Creating change set cache manager
2007-09-21 16:08:00,736 JiraQuartzScheduler_Worker-1 DEBUG [provider.impl.vss.VssScmProvider] Creating change set cache "jira.vssplugin.repository.%24%2Fjira"
2007-09-21 16:08:00,752 JiraQuartzScheduler_Worker-1 DEBUG [ext.vss.indexer.RevisionIndexer] Repository "$/jira": 2 revisions retrieved
2007-09-21 16:08:43,150 http-8100-Processor24 DEBUG [ext.vss.indexer.RevisionIndexer] Finding 20 log entries for project [JRA]
2007-09-21 16:08:43,166 http-8100-Processor24 ERROR [ext.vss.tabpanel.VssProjectTabPanel] Unable to retrieve change sets for project "JRA" and version null
java.lang.RuntimeException: no terms in field date - cannot determine sort type
at org.apache.lucene.search.FieldCacheImpl.getAuto(FieldCacheImpl.java:325)
at org.apache.lucene.search.FieldSortedHitQueue.comparatorAuto(FieldSortedHitQueue.java:341)
at org.apache.lucene.search.FieldSortedHitQueue.getCachedComparator(FieldSortedHitQueue.java:184)
at org.apache.lucene.search.FieldSortedHitQueue.(FieldSortedHitQueue.java:58)
at org.apache.lucene.search.TopFieldDocCollector.(TopFieldDocCollector.java:44)
at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:108)
at org.apache.lucene.search.Hits.getMoreDocs(Hits.java:65)
at org.apache.lucene.search.Hits.(Hits.java:52)
at org.apache.lucene.search.Searcher.search(Searcher.java:53)
at com.atlassian.jira.plugin.ext.vss.indexer.RevisionIndexer.findLogEntriesByQuery(RevisionIndexer.java:385)
Sep 21, 2007
Ferenc Kiss says:
It seems your index is completely empty. Please link your change set to an exist...It seems your index is completely empty. Please link your change set to an existing issue by changing the commit message to "Foo bar JRA-1" for example. This should prevent the exception.
Anyway, this is a bug, so please post a bug report.
Sep 24, 2007
Gert-Jan Bartelds says:
Hi, I checked again, and both revisions of the one file in the VSS repo actually...Hi,
I checked again, and both revisions of the one file in the VSS repo actually contain a commit message with an existing issue key. I will check again after I get the 1.0beta3 working.
GJ
Sep 24, 2007
Ferenc Kiss says:
Based on your log, I must say the plugin does not parse the commit texts from th...Based on your log, I must say the plugin does not parse the commit texts from the VSS log output. We'd appreciate if you could run the following commandline and upload the output here?
Sep 21, 2007
Ferenc Kiss says:
This issue has been fixed in the meanwhile. You can grab the "1.0beta3" fromThis issue has been fixed in the meanwhile. You can grab the "1.0-beta3" from http://svn.atlassian.com/svn/public/contrib/jira/jira-vss-plugin/jars as usual.
Please note that it has been update to the Lucene 2.* branch, so you will need JIRA 3.10 or newer.
Sep 24, 2007
Gert-Jan Bartelds says:
Ferenc, thanks for the fast update. I have downloaded the 1.0beta3 and placed it...Ferenc, thanks for the fast update. I have downloaded the 1.0beta3 and placed it. Also removed the beta2 version of course. Now I'm getting an NoClassDefFoundError error during startup (I am using JIRA 3.10.2 #262 ) which seems to be related to Lucene. You did note in your comment that it is now using the 2.* branch, but you also seemed to indicate that it would work with JIRA 3.10, so I did not expect this error.
Anyway, here's the log:
2007-09-24 15:33:59,401 main ERROR [ContainerBase.[Catalina].[localhost].[/]] Exception sending context initialized event to listener instance of class com.atlassian.jira.upgrade.ConsistencyLauncher java.lang.NoClassDefFoundError: org/apache/lucene/document/Fieldable
at com.atlassian.jira.plugin.ext.vss.manager.impl.vss.VssScmManager.<init>(VssScmManager.java:60)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
and
2007-09-24 15:34:00,182 main ERROR [atlassian.jira.service.DefaultServiceManager] Could not configure services:java.lang.NoClassDefFoundError: org/apache/lucene/document/Fieldable
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:164)
at com.atlassian.jira.plugin.ext.vss.indexer.RevisionIndexerService.class$(RevisionIndexerService.java:19)
at com.atlassian.jira.plugin.ext.vss.indexer.RevisionIndexerService.<clinit>(RevisionIndexerService.java:19)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
Sep 24, 2007
Ferenc Kiss says:
Yeah, this is related to the Lucene version conflicts. We will maintain two sep...Yeah, this is related to the Lucene version conflicts.
We will maintain two separate branches for Lucene 1.x (that is JIRA versions up to 3.10) and 2.x (from JIRA 3.11). The 1.x compliant new version will be out in 2 days.
We're sorry for confusion.
Sep 24, 2007
Ferenc Kiss says:
The plugin has been rebuilt with the 1.9.1 Lucene version that is packaged with ...The plugin has been rebuilt with the 1.9.1 Lucene version that is packaged with JIRA 3.10.2. You can grab the 1.0-beta4 at http://svn.atlassian.com/svn/public/contrib/jira/jira-vss-plugin/jars/.
This should solve your version conflict issues.
Nov 07, 2007
Maxim Sentse says:
Hi Ferenc, Looks great, but before installing a short simple question: in our J...Hi Ferenc,
Looks great, but before installing a short simple question: in our JIRA (3.11) we are supporting projects who work in Source Safe and in Subversion. The subversion plugin is already installed, can I install this plugin beside it??
Nov 07, 2007
Ferenc Kiss says:
Sentse, yes, those two plugins can work in the same JIRA and should not conflict...Sentse, yes, those two plugins can work in the same JIRA and should not conflict at all.
Nov 13
Iwan Tomlow says:
Is this supposed to be working also when your Jira is running on a linux/unix se...Is this supposed to be working also when your Jira is running on a linux/unix server?
The comments in the .properties file state:
# Use this syntax if "ss.exe" is located in another computer over your LAN: ssExe.dir=\\\\MYSERVER
Microsoft Visual SourceSafe
This UNC-path naming is only valid for Windows I presume - I tried it anyway, but Jira fails to start and I see this in the log:
2007-11-13 16:58:36,878 main ERROR [com.atlassian.jira.ComponentManager] Error occurred while starting component.
java.lang.IllegalStateException: ss.exe not found as "/home/webapp/\\SERVER\Microsoft Visual SourceSafe/ss.exe"
Nov 13
Ferenc Kiss says:
Unfortunately, it will work only on Windows. :( The reason is simple: the plugin...Unfortunately, it will work only on Windows.
The reason is simple: the plugin relies on the commandline SourceSafe client ss.exe (because MSVSS has no API of any kind), and ss.exe is a Windows binary.
Nov 14
Iwan Tomlow says:
I was afraid you were going to say that... Had small hopes there might have been...I was afraid you were going to say that...
Had small hopes there might have been some way to use the "ss.exe" from the local client installation instead of from the JIRA server, but I understand that's not the way it works.
Thanks anyway
Nov 15
Ferenc Kiss says:
No problem. (Of course, all the fun is done in the serverside, so if you're runn...No problem. (Of course, all the fun is done in the serverside, so if you're running Linux, it doesn't matter what you ss.exe you have locally in your Windows.)
But it's not 100% hopeless. If you can get ss.exe running on your Linux with some Windows emulation like e.g. wine, that seems like a feasible thing to do. (I doubt ss.exe is really complicated in terms of its WINAPI dependencies.)
So you can:
Nov 28
Joshua Standing says:
Hi, I cannot get this plugin to work. Is SourceSafe 6 supported? I receive...Hi,
I cannot get this plugin to work. Is SourceSafe 6 supported?
I receive:
The path works if I run it from the command window. If I change the ssExe.dir to my local copy of SourceSafe, I get:
Pasting the path into Start -> Run opens the INI in Notepad.
I also tried using the IP address with no success.
Nov 29
Ferenc Kiss says:
It seems that those network paths cannot be resolved. Your tests are not complet...It seems that those network paths cannot be resolved. Your tests are not completely correct, because you're running them locally! Instead, you have to make sure that those paths can be accessed from that server where JIRA is running and using that user account who launched JIRA!
(When executing ss.exe, this process will inherit all access rights from JIRA.)
Nov 29
Joshua Standing says:
Thank you for your response. My JIRA server for this configuration is my local m...Thank you for your response.
My JIRA server for this configuration is my local machine with the same login.
Joshua
Nov 29
Joshua Standing says:
Hello, I apologize for the previous response, your answer was correct. I a...Hello,
I apologize for the previous response, your answer was correct. I am running the configuration as a service and was starting JIRA with the "Local System" account. Changing the account to our development administrator user works. I will need to investigate the access rights of the JIRA account.
Thanks,
Joshua
Nov 29
Joshua Standing says:
Hello, I did not see any way to define multiple SourceSafe repositories in...Hello,
I did not see any way to define multiple SourceSafe repositories in the vss-jira-plugin.properties file. Is this supported? Our projects span more than one repository, each with their own srcSafe.ini file.
Thanks.
Nov 29
Ferenc Kiss says:
The current version supports multiple VSS projects, but those must be in the sam...The current version supports multiple VSS projects, but those must be in the same repository, so it doesn't solve your problem. Multiple repositories are not supported yet. Please post a feature request and we will address it very soon.
(And thanks for giving a try to our plugin.)
Jan 25
Alan Ford says:
Hi, Is there any way of being able to see a diff of the commited changes (simila...Hi,
Is there any way of being able to see a diff of the commited changes (similar to ViewCVS)?
I'm trying to find a bug track system (hence evaluating Jira) that can allow developers to comfortably perform code reviews with a SourceSafe database.
Unfortunately changing to cvs or svn is not an option.
I have a horrible feeling it's not possible with sourcesafe though.
Thanks, Alan.
Jan 25
Ferenc Kiss says:
Alan, the current version of the plugin doesn't support it, sorry. But this woul...Alan, the current version of the plugin doesn't support it, sorry. But this would be possible to render the output of
ss Diff $/projecttest/testfile.txt -V14~13 to the web interface. Add a feature request to our JIRA please.
Feri
Jan 25
Alan Ford says:
Feri, the request has been added. Having this feature is a must in order for us ...Feri, the request has been added.
Having this feature is a must in order for us to even consider purchasing Jira, so I'll be watching...
Many thanks, Alan.
Jan 26
Ferenc Kiss says:
Thanks, Alan. We are definitely giving this a thought.Thanks, Alan. We are definitely giving this a thought.
Feb 24
Joseph says:
Hello, Any update on when you will provide a plugin for Team Foundation Servies?...Hello,
Any update on when you will provide a plug-in for Team Foundation Servies? I saw a comment from last July and was curious if any progress has been made on this request.
thanks
Feb 25
Ferenc Kiss says:
Unfortunately, no work has been done on this, Joseph, because we have not receiv...Unfortunately, no work has been done on this, Joseph, because we have not received enough requests from our users. Anyway, there is an issue created for this (http://developer.atlassian.com/jira/browse/VSS-5), please go and vote for this.