PennLINC / babs

BIDS App Bootstrap (BABS)
https://pennlinc-babs.readthedocs.io
MIT License
5 stars 5 forks source link

[FIX] `babs-init` creates a new branch `git-annex adjusted branch` at the end for `analysis` DataLad dataset #158

Closed zhao-cy closed 4 months ago

zhao-cy commented 7 months ago

Shreya from Alexander-Bloch's lab found that, when running babs-init on the BIDS data she created, the last commit it creates in analysis DataLad dataset is a git-annex adjusted branch. Therefore it's one commit ahead of output and intput RIA store's.

To solve this issue, she ran git checkout master, then it's back to the master branch, which has the same head as output and input RIA store. See here for more about git-annex-adjust

zhao-cy commented 7 months ago

Details for babs-init: See messages in BABS slack channel.

Details for error when cloning output RIA store, and during babs-merge: see below. It means that when cloning the output RIA store, the adjusted master branch is created/switched to. The rest of babs-merge happens in this branch.

shreyagudapati9 commented 7 months ago
(babs) [ BABS_CATD]$ datalad clone output_ria/5e6/f8378-0764-4e21-aa0a-6d58ba4d7c95/ merge_ds3
[INFO   ] Filesystem does not allow removing write bit from files.                                                                                                
[INFO   ] Detected a crippled filesystem. 
[INFO   ] Disabling core.symlinks. 
[INFO   ] Entering an adjusted branch where files are unlocked as this filesystem does not support locked files. 
[INFO   ] Switched to branch 'adjusted/master(unlocked)' 
[INFO   ] Remote origin: This repository is not initialized for use by git-annex, but ./../output_ria/5e6/f8378-0764-4e21-aa0a-6d58ba4d7c95/annex/objects/ exists, which indicates this repository was used by git-annex before, and may have lost its annex.uuid and annex.version configs. Either set back missing configs, or run git-annex init to initialize with a new uuid. 
shreyagudapati9 commented 7 months ago

git-annex version : 10.20230408-g5b1e8ba77

shreyagudapati9 commented 7 months ago

Error message from babs-merge :

(babsfix) [ BABS_CATD]$ babs-merge --project-root $PWD
Cloning output RIA to 'merge_ds'...
[INFO   ] Filesystem does not allow removing write bit from files.                                                                                            
[INFO   ] Detected a crippled filesystem. 
[INFO   ] Disabling core.symlinks. 
[INFO   ] Entering an adjusted branch where files are unlocked as this filesystem does not support locked files. 
[INFO   ] Switched to branch 'adjusted/master(unlocked)' 
[INFO   ] Configure additional publication dependency on "output-storage" 
configure-sibling(ok): . (sibling)
install(ok): /mnt/isilon/bgdlab_resnas03/code/synthseg_image_test/BABS_CATD/merge_ds (dataset)
action summary:
  configure-sibling (ok: 1)
  install (ok: 1)

Listing all branches in output RIA...

Finding all valid job branches to merge...
Git default branch's name of output RIA is: 'master'

Merging valid job branches chunk by chunk...
Total number of job branches to merge = 2
Chunk size (number of job branches per chunk) = 2000
--> Number of chunks = 1
Merging chunk #1 (total of 1 chunk[s] to merge)...
  sub-23823_synthseg-0-0-1.zip is a git-annex pointer file. Its content is not available in this repository. (Maybe sub-23823_synthseg-0-0-1.zip was copied from another repository?)
Fast-forwarding to: remotes/origin/job-7191194-sub-23823
Trying simple merge with remotes/origin/job-7191195-sub-24060
Merge made by the 'octopus' strategy.
 sub-23823_synthseg-0-0-1.zip | 1 +
 sub-24060_synthseg-0-0-1.zip | 1 +
 2 files changed, 2 insertions(+)
 create mode 100755 sub-23823_synthseg-0-0-1.zip
 create mode 100755 sub-24060_synthseg-0-0-1.zip

Pushing merging actions to output RIA...
fatal: The current branch adjusted/master(unlocked) has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin adjusted/master(unlocked)

To have this happen automatically for branches without a tracking
upstream, see 'push.autoSetupRemote' in 'git help config'.

Traceback (most recent call last):
  File "/home/gudapatis/miniconda3/envs/babsfix/bin/babs-merge", line 8, in <module>
    sys.exit(babs_merge_main())
  File "/home/gudapatis/miniconda3/envs/babsfix/lib/python3.9/site-packages/babs/cli.py", line 702, in babs_merge_main
    babs_proj.babs_merge(args.chunk_size, args.trial_run)
  File "/home/gudapatis/miniconda3/envs/babsfix/lib/python3.9/site-packages/babs/babs.py", line 1735, in babs_merge
    proc_git_push.check_returncode()
  File "/home/gudapatis/miniconda3/envs/babsfix/lib/python3.9/subprocess.py", line 460, in check_returncode
    raise CalledProcessError(self.returncode, self.args, self.stdout,
subprocess.CalledProcessError: Command '['git', 'push']' returned non-zero exit status 128.
zhao-cy commented 7 months ago

It seems this additional adjusted branch was also created when preparing a DataLad dataset (e.g., after datalad create and datalad save or so), or datalad clone a dataset or output RIA.

It also seems this may only happens on their cluster's fileshare directory, but not in Shreya's home directory on the cluster. We are investigating more here.

mattcieslak commented 4 months ago

This turned out to be due to the file system