Why don't all my tags show up in Fisheye?
This page gives a detailed technical explanation of why certain issues affect Subversion users.
On this page:
When accessing Subversion from Fisheye, you may see references to tags in the branches drop-down menu. In the example below, we can see tag1 and tag3 in the drop-down menu but not tag2:
Screenshot: The Branches Drop-Down Menu in Fisheye
In actual fact, the branches drop-down menu shows only branch names. It does not show tags, but in some instances Fisheye will synthesize a branch name to record certain operations. To understand how this occurs, you will need some background knowledge on Subversion tagging (introduced in the following segments of this page).
How Subversion processes tags and branches
In Subversion, tags are only a convention and are typically the result of a copy operation from the trunk to a tag area in the tags directory. When Fisheye processes this copy operation, it recognizes that the destination is a tag directory and tags the source file on trunk with the name of the tag.
That is, Fisheye is interpreting the Subversion copy to a tag directory as a tagging operation on the trunk files.
For regular changes in your Subversion repository, Fisheye records each change against a branch where the change took place. If, however, after tagging, you make a change to a file in the tagged area, you are making a change outside trunk or a recognized branch. Fisheye records such changes by creating an artificial branch name and associating that branch name with the change. The branch name is derived from the tag name by prepending "tag:" (in other words, the characters "tag:" appear as the first part of the name). The same thing will occur if you create a new file in the tagged area which does not come from an existing branch or trunk.
This is the reason you see some of your tags in the branch drop down. It means that for those tags, you have made a modification after the tagging operation.
An example from an Subversion repository
For example, consider tag4 in this screenshot:
There are two changes here. The first creates the tag and the second adds a new file in the tagged area. This will result in the creation of an artificial branch, called "tag:tag4" within Fisheye.
Avoid modifications in the tag area
In general, it's not good practice to make changes in the tag areas of a Subversion repository. Such changes can easily get lost if they are not applied to trunk or a current branch. It is preferable to make the change in trunk or a branch and then create a new tag to capture the update. Nevertheless, since Subversion tagging is merely a convention, this is sometimes convenient. Fisheye handles this situation as described above.
In general a lot of systems have a large number of tags which would make the drop-down unworkable. This is the reason the tag field is a text-entry box below the branch drop-down menu in Fisheye.
Since tags and branches are based on location convention in Subversion, the constraint is less effective than on other SCMs. You can always see the tag or branch you are interested in, based on its location in the repository. For example, the subdirectory list here shows all tags:
If you want to constrain to a tag, enter the tag name in the tag field of the constraint filter.