Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Choosing between Fisheye and Bitbucket to integrate with Crucible and Jira

Vladimir Litvinenko September 11, 2018

Hello. Please give advice on selecting products from this list: Crucible, Fisheye, Bitbucket

Our company uses Jira. The source code will be stored in the Git repository and we will conduct a code review in Crucible.

In the development process, we would like to use the following functionality:

 

1) The developer, when solving a task, makes several commits to the git repository. We want to see a link to the list of these commits in the Jira task as shown in the following screenshot: https://ds6br8f5qp1u2.cloudfront.net/blog/wp-content/uploads/2015/07/integrate-JIRA-GitHub-for-web-development.png?x88475

 

2) After clicking on the link  “commits” we want to be able to "Create a code review for all commits" as shown in the following screenshot https://confluence.atlassian.com/fisheye/files/298976858/456654877/2/1444173699657/FU-changesets.png (see upper right corner of screenshot)

 

3) After creating the code review  for the task as a whole, we want to see a link to created Code Review in the Development section of  Jira task next to the links that leads to commits. Almost as shown in the following screenshot, but instead of “pull request” there should be a “code review”.

https://marketplace-cdn.atlassian.com/files/images/com.atlassian.jira.plugins.jira-bitbucket-connector-plugin/86ff1a21-44fb-4227-aa4f-44c77aec2c97.png

 

4) We don't want to see links to commits and reviews simply in the “links” section of the task. We want to see them on the right side of the task window in Jira in the “Development” section.

 

5) In the Crucible review, created for several commits within one task, we want to see a slider that allows us to view the history of code changes related to the task:  https://i.ytimg.com/vi/UFNPgfQFJHk/maxresdefault.jpg (see the red slider on the screenshot)

 

6) If the file was changed after creating the review, we need the "File outdated" link, which allows adding a new version of the file in the review as shown in the following screenshot: https://confluence.atlassian.com/crucible/files/298977444/299140749/1/1287474611258/Crucible-2.3_Review-File-Outdated.png



It is known that Fisheye allows to host git repositories.  Also we have information that the functionality of Crucible will be definitely limited without Fisheye, even with Bitbucket. For example without Fisheye there will be no “File outdated” link. Therefore, it seems that we can apply the combination Crucible + Fisheye and do not use Bitbucket.

 

But we still need integration with Jira :   links to commits and reviews in Development section of task, ability to create review for all commits within one task and see reviews tatus next to the “review” link in Jira.

 

Is it enough for us to use Crucible and Fisheye in order to meet the above requirements?

Or is it enough for us to use Crucible and Bitbucket?

1 answer

0 votes
Dave Theodore [Coyote Creek Consulting]
Community Champion
September 11, 2018

Honestly, you can do this, but it won't work very well.  Git has its own method of managing code review called pull requests. I would recommend learning how to use Bitbucket and change your paradigm to use it the way it's intended to be used. Atlassian has a nice description of the Git paradigm documented. It's worth a quick read.

Your requirements are for the centralized source control paradigm and Git is a distributed source control tool.  What you are proposing works fine with SVN, Perforce, etc, and there really isn't a need to move to Git of you want to operate in that paradigm.

Git/Bitbucket is intended to work something like this:

  1. Create a branch in Git
  2. Check in against this branch, including Jira Issue numbers in your commit messages.
  3. When you're done working on the branch, you perform a merge.
  4. Bitbucket blocks the merge, pending approval of the "pull request"
  5. Once the pull request is approved (ie: code has been reviewed) the merge is accepted.

To make life easier, when you integrate Jira and Btbucket together, there is a "Create Branch" button in Jira that you can do from within a Bug, Story, etc. This creates a branch and associates it with the Jira issue, so that you don't need to include the Jira Issue number in every commit message. The changeset information, pull requests, etc will appear in a "Development" panel on the right side of the Jira screen, rather than in a tab next to History.

I think your overall experience will be better if you implement something along this line. An area that we see people struggle with is the branching and merging. I think a lot of this comes from experience with SVN.  SVN is great at branching, but merging is pretty terrible, so people assume the experience will be similar with Git. Git was designed to branch and merge, so it has a lot of smarts around this. 

Also, Fisheye does not host any source control repos. It simply indexes them and allows you to search, diff, etc the indexed code.  Crucible allows you to select code that has been indexed and perform asynchronous code reviews on the selected code. You can make Fisheye/Crucible talk to Git/Bitbucket, but you will need to commit to the source system and not to Fisheye/Crucible. You could potentially host both functions on the same server, though.

I guess that probably isn't what you were expecting to hear, but I hope that gives you some food for thought. I hope that helps.

Vladimir Litvinenko September 12, 2018

Hi Dave! Thank you for the answer.

I didn't mention that now we can use Git only for publishing source code within our company, for knowlage exchange and for code reviews.

We are working with such system as 1C:Enterprise and it's own version of CVS called "Configuration storage". It's like SVN and I think that developers of this tools was inspired by SVN. It has only one "main" branch and no pull or merge requests.
We are going to export "Configuration storage" to Git to accelerate some processes, improve quality and team collaboration. I already set up such process for another company with help of Atlassian's consultant. But we used Bitbucket + Fisheye + Crucible bundle for this.

Now we need to set up process on our own and we'd like to use minimum set of tools for this.

Dave Theodore [Coyote Creek Consulting]
Community Champion
September 12, 2018

You can use Bitbucket and Fisheye/Crucible together. There is nothing preventing you from doing so.  Just keep in mind that you are mixing the Centralized and Distributed source paradigms together and Git was specifically designed to solve some of the limitations of the Centralized paradigm. We've implemented several solutions similar to what you are describing, despite our pleas to go native with Git.  They work, but it doesn't feel connected and there are a lot of things that you need to work around.  Starting with a clean slate, designing your Bitbucket environment to work in the Distributed paradigm and reworking your repos to best fit in to the Distributed paradigm will make life a lot easier in the long run.

My recommendation would be to use Bitbucket only, connect it to Jira so that you can do feature/bug branching from within Jira and not using Fisheye/Crucible. It would also be a good idea to evaluate your current repo structure, looking for ways to break your monolithic repos in to multiple smaller repos. This will make life easier for your engineers, not needing to clone massive repos, and may may your build process faster, as you are able to modularize your application and build only the parts that have changes made to them (ie: microservices.)

Suggest an answer

Log in or Sign up to answer