File Lock
Fixes https://gitlab.com/gitlab-org/gitlab-ee/issues/497
-
Data layer(tables, models, migrations) -
Checks on git push -
Author should be able to push if one owns the lock -
Path matcher with tokenizer and memoization -
Show lock status icons by files and folders -
UI: mockup buttons for locking files, folders -
UI: Locking files -
UI: Locking folders -
Permissions check everywhere -
Add page to list all locked files/dirs to get overview in case people forget to unlock -
Refactor lock_file_button
andlock_file_link
-
Testing Git LFS -
Get rid of code duplication in pre-receive hook -
Test case: I want to unlock file if I'm a developer and I'm not an author of lock -
Make it EE option -
Specs and spinach -
TODOs in the code
Can be moved to the next iteration:
-
Fix Web UI lock check(!487 (merged)) -
timeago in the lock icon tooltip. It's not working out of the box(#704) -
Ajax load bar on click "Lock/Unlock" in the file tree (#698 (closed)) -
Nested locking UI. If we look at file and it's locked because of parent we should show it in tooltip. (#705 (closed))
Screenshots
Related info:
Douwe wrote:
For a next iteration, we need to think about nested locking more. If user A has locked lib/, user B shouldn't be able to lock lib/foo.rb since that falls under lib/. Similarly, if user A has locked lib/foo.rb, user B shouldn't be able to lock lib/, because part of that directory is locked by someone else already.