Fisheye: Proper SVN tagging - Reviewing
Asked by matthew misler:

Hello Atlassian community,

I am hoping that there is something I am missing, because I really enjoy the use of Fisheye when it falls in line with my process. That being said, I am having a lot of trouble combining our process (SVN usage) with my Fisheye installation. Our general structure is

RootUrl/  
RootUrl/Application1/tags/1.0  
RootUrl/Application1/tags/1.1  
RootUrl/Application1/trunk  
RootUrl/Application1/branches  
...  
RootUrl/Application100/tags  
RootUrl/Application100/trunk  
RootUrl/Application100/branches

While some projects are larger, we have about about 100 applications, most of which are distinct and have less than the order of 50 files. We have about 22,000 SVN revisions. So an average project has around 200 revisions. Most of the time, there is between 1 and 2 developers commiting changes to trunks within their application. Once complete, tags are created from (usually Tortoise SVN gui) branch/tag, taking the code from trunk and copying it into a tag. To my understanding, this is the correct way to use SVN. To put a possible method of reviewing code, I will provide an example. It allows me to perform manual code reviews by selecting tag 1.0 and selecting tag 1.1 and seeing the changes from a directory, then asking for a diff on the modified files.

I do not immediately see this functionality in Fisheye. This is not necessarily a bad thing, because I believe (from using http://sandbox.fisheye.atlassian.com/browse/rails) that it seems like the functionality I desire can happen. It just isn't happening for me, yet.  

What it seems like Fisheye wants me to do is go through the revisions (or changesets) committed to trunk between tags, and then compare them. However, depending on how/when people have been creating their tags/trunk commits, etc. there could be pages and pages of changesets to mark; the ability to select a range of changesets under a given application would help me, but I do not see this option.

Next, it seems like Fisheye is not picking up my tags, branch and truck properly, as the search seems to fail when it should not. What I mean by this is when browsing repositories, it seems to only pick up some tags (\~1% of them). To my knowledge nothing was done differently in these cases, but these are old revisions/tags from before I begun working with this company.

Lastly, Fisheye crashes (404 error) when trying to search on username. The only thing I can think of is that in our SVN, we use DOMAIN/username when specifying users. However, this search functionality has not worked properly yet. This is not a particularly big issue, because if our SVN-Fisheye combination would work properly, I would not need this functionality anyway.

Any advice with respect to our use of SVN or Fisheye would help. We are using Fisheye version 2.6.1 evaluation. Ideally if we can get this to work, we would like to integrate it with our Jira and Confluence systems, but until I can successfully nail the process down, it will have to wait or we will have to look elsewhere. It seems like it is a great product, so I hope there is something I can adjust to use it successfully.

<br />

Thanks


Answers:
author: muschol
body: My understanding is that Crucible currently does not directly support reviews of tags against other tags. I have seen feature requests from other customers asking for similar functionality (such as diffing folders in general), but there has been no movement from Atlassian so far.

There is a way of doing this though. You can create a diff between the two tags using the Subversion "svn diff" command and then upload the diff as a changeset to a new Crucible review. You could even do this in a post-commit hook in Subversion and use the Crucible REST API to upload the diff and create the review automatically every time a new tag is created. (Note that this would require a clear rule to identify the previous tag the newly created tag should be compared to.)

Hope this helps.

Matt Muschol @ Clearvision


author: Jean-Yves Avenard
body: For the tags to be recognised you need to tell FishEye how your tags and branches are organised, as fisheye by default expect:

root/{trunk,tags,branches}

if it is organised as:

root/ProjectName{trunk,tags,branches} you will need to perform some modifications.

Go into the fisheye admin -\> repositories screen, and click on the repository to edit.

Go into SCM details, and select for the SVN Symbolic Rules: And then apply the following Rules: select the "project/trunk/..." entry  
Refer to this page for more information: <http://confluence.atlassian.com/display/FISHEYE/SVN+Tag+and+Branch+Structure>

The other possibility, is to add a new repository in fisheye for each project. When adding the repository in fisheye, you would enter in the path value /Applications1

I find that this last option is the easiest to use. Swapping between tags and branches in fisheye when you have multiple folders/projects in the same repo is very cumbersome and rather non-intuitive. You will also have all the tags appearing for all applications and not just the one relevant to the folder you are browsing.

Create a fisheye repository in Fisheye takes more time to set up, but it works much better after, and it also allows you to finely-grained who can access what.