Can the scriptrunner for bitbucket be used to lock checked out files

Jodi Gornick August 28, 2017

I would like to provide the ability to prevent two people from checking out the same file. If not, then prevent the commit by the second person.

Is this possible with Scriptrunner?

We are trying to support exclusive file locking through Bitbucket/GIT, we want to allow only one user to work on a file at a given time (in certain situations - binaries). This would be handled using the file locking facility (exclusive checkout). When userA exclusive checks out file1, no other user can checkout file1 and hence we do not encounter merge conflicts situation.

2 answers

1 accepted

1 vote
Answer accepted
adammarkham
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
September 6, 2017

Hi Jodi,

As Daniel mentioned Git does not allow you to do this but Git LFS 2.0 onwards supports file locking. You can find out more about this here.

Information on enabling LFS support in Bitbucket Server can be found here.

It may be useful to know that ScriptRunner for Bitbucket Server has a pull request advisor hook to encourage developers to update their branch regularly to avoid large merge conflicts for non-binary files.

Hope this helps.

Adam

Jodi Gornick January 23, 2018

File locking support in Bitbucket is still an open request:

 https://jira.atlassian.com/browse/BSERV-9623

 

Our need is essentially around binary files only.

0 votes
Daniel Yelamos [Adaptavist]
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
September 6, 2017

Hello Jodi.

This is frankly something that git isn't meant to do. Git is used to share code, including files and encountering merges and solving them.

You cannot prevent a user to checkout a commit, since git works with a local repo, and your local repo has no information about what other users have checked out, since they keep a local copy all of the time. Users pull the whole repo, not a part of it.

I am really confused as what it is you want to archieve and why, but I can assure you this is not what git is used for. I don't know if this is possible with our product, I honestly think that it isn't with git.

I hope this was helpful.

Cheers

Dyelamos

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events