We're long time Jira users (nearly 10 years!) and GreenHopper for the past 3 or 4.
We're migrating our source control over to Git from SVN, and would like to make code review part of our standard development process.
We've been looking at Crucible (with SVN) for a while now, and ran a pilot project that saw some success with a 3 person team. We were thinking of purchasing a license for Crucible/Fisheye, but the release of Stash and the direction that Atlassian seems to be going with Stash has caused some confusion.
Here's my read of the situation:
Is this correct?
Now, for us:
Given these two points, I'm leaning towards purchasing Fisheye/Crucible. However, I can't shake the nagging feeling that the recent Git deprecation in Fisheye is a sign of future things to come, as more Git functionality gets added to Stash, and Fisheye/Crucible stays stuck in the centralized SVN world.
Can anyone provide any guidance here? What are other organizations doing? Are there any development case studies showcasing how Stash is being used in the Real World™?
As the original person who posted this question I thought I'd post a follow-up.
Overall, our experience with Git/Stash has been very positive, a year and a half later.
It did change the way we do code reviews - we have moved to a pull request based workflow (where it makes sense) but are not dogmatic about it. This process has worked well, especially when reviewing code from new team members.
The ability to comment on commits outside of a pull request addresses our needs for ad hoc review.
I think we made the right choice. I still would like to see some of the reporting features of Fisheye/Crucible brought over, but it's not critical to how we work.
Stash has been designed around DVCS and Git in particular. If you are using Git, Stash is the only tool you will need going forward.
If you are using SVN or any other version control system alongside Git, FishEye and Crucible provide a great way to perform code reviews against these systems and allow you to browse and search across your entire source.
Hope this makes it more clear and please let me know if you have any further questions.
We are actively in this same process. I have moved 11 of 89 Subversion repositories to Stash/Git. We are still using are old processes which don't include pull requests. Is there anyway to iniate a code review after a push on the change set? If not will you expand the ability to create or request code reviews that are not dependent on pull requests? We already Fisheye/Crucible and continue to use Crucible for our code reviews but as we get fully migrated I'd like to think your statement regarding Stash will be the only tool you'll need to be true...
I am a little behind on Stash upgrades. We have been using F/C with SVN for years along with 5 or 6 other Atlassian apps. I guess my question is will it be possible to create code reviews in Stash without creating a pull request? This currently does not fit our process and not sure it ever will. So when a developer pushes a change can he then create a code review on that change set. If not now ever?
It really depends on what functionality you need out of either product. Stash is currently positioned as a repository management and browsing solution for git with pull requests and in the future we'll be adding more workflow related features. FishEye/Crucible however provides SCM agnostic repository browsing, search and code review and analysis. Although the repository management feature has been removed from FishEye (superseded by Stash) FishEye will continue to support git as well as SVN (which you mentioned you were moving from).
If you are only partially through your migration from SVN to git and require a solution which works with both or you are interested in deep code analysis and search FishEye/Crucible may be a better product for you in the short term.
On the other hand if you are completely moved to git or using it for most of your repositories and need a product to provide code review and facilitate workflows you are most likely better with going with Stash. In the longer term, Stash is going to be your best bet as it will add more functionality which is going to enhance your use of git.
Disclaimer: I'm a developer on Stash and I was previously a developer on FishEye/Crucible.
Markus, one thing we added since this discussion happened is the ability to comment on commits outside of a pull request (since Stash 2.11 - https://jira.atlassian.com/browse/STASH-2511).
We currently don't have plans to add more generic review functionality in Stash (outside of pull requests).
Also, reviews created via pull requests must occur between branches. If you want to create a review between the head of one branch and an arbitrary commit you just need to create a new branch at that commit. This method allows you to create a review between any two essentially commits, which is another way to perform ad-hoc reviews. You probably don't want to click the merge button though :)
I was using Crucible for years. In my current company we have Stash.
In stash I really miss Crucible features like:
Agreed the biggest problem of stash is it's limited functionality, especially for involved/complex reviews. However saying that, if you have a lot of involved/complex reviews, then that is a problem in and of itself. So why I would like to see better functionality to assist reviewing (like the simple ability to "unread" a file in a PR so that it becomes bold text again), I do also appreciate the fact that limited functionality encourages you to do smaller changes that are easier to review.
I previously worked with stash but my current company uses crucible. All of those features are available in Stash and apparently they are in crucible but I have had trouble navigating crucible to find them. This seems like a situation where people just like what they're used to. My confidence in the product management teams at Atlassian is weak at best. No clear direction, SourceTree was a neat idea until it became a circus freak of weird UI principles.
I haven't looked enough into it, but one thing I think is good with Crucible is that you can get data on your review coverage of the code. Not sure if Stash have it - yet...
I would like some better answers from the Atlassian guys. Yes, of course it depends on requirements, but the tools were also made with a purpose in mind. If we know what the tools are specifically made for, then I think that would help a lot in deciding.
Of course it could be historical reasons: At some point there was a lot of talk about code reviews, so we got Crucible and CodeCollaborator. Then we had hosting services like Github, Bitbucket, Gitorious, and so on, and some eventually added other features. Github now has browing, a wiki, an issue tracker - the world is changing.
My question is: Is Stash created to supplement or replace Fiseye/Crucible for specific use, or is it made to "keep up with what competitors are offering"?
Since we have decided to switch to Git, we bit the bullet and went with Stash. So far we are still working out the best approach to integrating code review into our process. For most cases the pull request approach works, but in others (e.g. ad hoc code reviews on specific areas) it's less useful.
I also miss the data available from Crucible. Hopefully that gets added soon.
Overall I still think this is a bit of a product management failure on Atlassian's part. Customers shouldn't have to guess which of your products to use.
I second Darren's sentiment. This situation demonstrates a lack of strong leadership in Atlassian product management, and reflects the culture of engineer-driven product development. That sort of approach was fine when the customer base was SMEs and open-source projects, but enterprise customers deserve a clearly defined product roadmap and a suite of seemlessly integrated solutions.
I orginally got Stash for the AD support only. Git does not provide this support in anyway. The other features at this time are a bonus as we have F/C. I am still in the migration process of SVN to Git. Not sure of the Git code review feature yet as it is tied to pull requests which are not part of our current process.
My team is using both and sometimes it's a bit awkward. We basically use Stash with pull requests for every commit. We're using gitflow with feature branching for this.
However, we've found that if a developer is working on something large that will take several back and forth cycles with code review, pull requests are not the answer, but fisheye and crucible are. Some of the features in fisheye/crucible that don't exist for pull requests are as follows.
Anyway, that's my two cents.
I'm John Allspaw, co-founder of Adaptive Capacity Labs, where we help teams use their incidents to learn and improve. We bring research-driven methods and approaches to drive effective inciden...
Connect with like-minded Atlassian users at free events near you!Find a group
Connect with like-minded Atlassian users at free events near you!
Unfortunately there are no AUG chapters near you at the moment.Start an AUG
You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs