Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in
Deleted user
0 / 0 points
Next:
badges earned

Your Points Tracker
Challenges
Leaderboard
  • Global
  • Feed

Badge for your thoughts?

You're enrolled in our new beta rewards program. Join our group to get the inside scoop and share your feedback.

Join group
Recognition
Give the gift of kudos
You have 0 kudos available to give
Who do you want to recognize?
Why do you want to recognize them?
Kudos
Great job appreciating your peers!
Check back soon to give more kudos.

Past Kudos Given
No kudos given
You haven't given any kudos yet. Share the love above and you'll see it here.

It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

How do I delete tags from Subversion without breaking FishEye?

A Subversion branch or tag is a copy of a particular repository path at a point in time. This is denoted as the addition of a particular path.

For example:

------------------------------------------------------------------------
r1577 | dgr02 | 2016-06-01 14:13:18 +0100 (Wed, 01 Jun 2016) | 1 line
Changed paths:
   A /tags/SVN-HOOKS-1.1 (from /branches/svn-hooks-1.x:1576)
CBST-654 : Added issueType checking functionality.
------------------------------------------------------------------------

The deletion of a branch or tag is the corresponding removal of that particular path:

------------------------------------------------------------------------
r1586 | dgr02 | 2016-06-02 14:55:22 +0100 (Thu, 02 Jun 2016) | 1 line
Changed paths:
   D /branches/CBST-417
Branch clean-up
------------------------------------------------------------------------

When users are looking to clean-up old tags they will often perform this in in en masse manner - for example (different repository):

------------------------------------------------------------------------
r42953 | luw07 | 2016-06-02 13:15:31 +0100 (Thu, 02 Jun 2016) | 1 line
Changed paths:
   D /Database/DB_RDM/tags/snapshots/DB_RDM-106.0.19
   D /Database/DB_RDM/tags/snapshots/DB_RDM-106.0.21
   D /Database/DB_RDM/tags/snapshots/DB_RDM-106.0.22
   D /Database/DB_RDM/tags/snapshots/DB_RDM-106.0.23
   D /Database/DB_RDM/tags/snapshots/DB_RDM-106.0.31
   D /Database/DB_RDM/tags/snapshots/DB_RDM-106.0.32
... 480 additional deletions ...

This causes FishEye to get in a mess because it is unable to retrieve all of the changes associated with the revision in a suitable time. In the example above, each tag has 12,000+ paths so the whole changeset (according to FishEye) will amount to over 6,000,000 changes.

This, understandably, can cause FishEye to timeout its processing of the revision as it's SVN Operation Timeout is by default 1 hour.

For a changeset containing 1,000,000s of items it's unlikely to complete the transfer of all of this data within an hour for FishEye to then process; however whilst this would mean that the changelog would stay up to date it means that it would be continually re-attempting index the paths within this one revision.

My Question

Okay - so what I want to know is what are people's recommendations for actions which I can take which will help FishEye to cope with these kind of changesets?

Things I can come up with:

  1. Increase FishEye's SVN Operation Timeout parameter to a very high value (e.g. 2 weeks) so that it actually manages to retrieve all of the data – this can however have an impact on the heap requirements for FishEye as it then needs to be able to cope with a very large changeset.
  2. Put a hook on the repository which detects whether a changeset is impacting multiple tags and reject the commit. This however won't cope with if someone (in the example above) were to delete the directory containing the tags – that would appear in the commit log as a single item deletion.

What other suggestions might folks have for how I can protect my FishEye instance / help users to work in a more intelligent manner?

1 answer

Hi David,

I believe the best option would be to set an Exclude Path matching the path of the excluded tag when removing tags, then restarting (not re-indexing) the repository. To explain this a bit further, when adding an Exclude Path then just restarting the repository, FishEye will not try to index any further changes on that path - this way, you would maintain that tag indexed and showing up in your repository, but new changes, such as it deletion, wouldn't be indexed. I'm afraid it's not possible to set this programatically once you delete a tag, though, since FishEye's REST API doesn't offer an endpoint for setting exclude/include paths - for this, there's a feature request you can check at https://jira.atlassian.com/browse/FE-5718, but please notice Atlassian doesn't offer ETAs for the implementation of new features. Please feel free to vote and add any comments to it, as well as adding yourself as a watcher so you can track its progress directly. You may refer to Atlassian's policy for the implementation of new features.

Furthermore, if you don't wish the tag to display anymore in FishEye, you can set a Hidden Directory for it, which will just hide the given directory.

You can read further about Exclude Paths at https://confluence.atlassian.com/display/FISHEYE/Include+Exclude+paths and about Hidden Directories at https://confluence.atlassian.com/display/FISHEYE/Hidden+directories

Regards,

Gustavo

Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase

The benefits of using Jira in different departments

Jira is a great tool to use across different departments. Forget that paperwork – switch to Jira and get that tasks done smoothly. Marketing Jira allows for a complete digital transformation of you...

102 views 0 6
Read article

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you