This commit is contained in:
parent
62e9355a4a
commit
84d0bd9969
1 changed files with 109 additions and 0 deletions
109
doc/forum/transfer_bare_repo_setup_problem.mdwn
Normal file
109
doc/forum/transfer_bare_repo_setup_problem.mdwn
Normal file
|
@ -0,0 +1,109 @@
|
|||
Thanks to Joey's help, I managed to get the transfer repository setup working in a [previous forum question](https://git-annex.branchable.com/forum/client_repositories_setup_problem/).
|
||||
|
||||
Now, I'm trying to do something similar, but using a bare git repository as the transfer repo instead of a regular git repository.
|
||||
|
||||
Here's my bash script which bootstraps the setup stage:
|
||||
|
||||
```
|
||||
#/usr/bin/env bash
|
||||
|
||||
# Useful links:
|
||||
# https://git-annex.branchable.com/bare_repositories/
|
||||
|
||||
# Just a way to access the script's directory
|
||||
cd "$(dirname "$0")"
|
||||
DIR="$(pwd)"
|
||||
|
||||
# Create the 1st client repository
|
||||
mkdir $DIR/client1
|
||||
cd $DIR/client1
|
||||
git init && git annex init
|
||||
|
||||
# Create the 2nd client repository
|
||||
mkdir $DIR/client2
|
||||
cd $DIR/client2
|
||||
git init && git annex init
|
||||
|
||||
# Create the transfer repository
|
||||
mkdir $DIR/share
|
||||
cd $DIR/share
|
||||
git init --bare && git annex init
|
||||
|
||||
# Setup the remotes and groups for the transfer repository
|
||||
cd $DIR/share
|
||||
git remote add client1 $DIR/client1
|
||||
git remote add client2 $DIR/client2
|
||||
git annex wanted . standard
|
||||
git annex group . transfer
|
||||
git annex group client1 client
|
||||
git annex group client2 client
|
||||
git annex mincopies 2
|
||||
git annex numcopies 2
|
||||
|
||||
# Setup the remotes and groups for the 1st client repository.
|
||||
cd $DIR/client1
|
||||
git remote add share $DIR/share
|
||||
git annex wanted . standard
|
||||
git annex group . client
|
||||
git annex group share transfer
|
||||
git annex config --set annex.addunlocked true
|
||||
git co -b main
|
||||
|
||||
# Setup the remotes and groups for the 2nd client repository.
|
||||
cd $DIR/client2
|
||||
git remote add share $DIR/share
|
||||
git annex wanted . standard
|
||||
git annex group . client
|
||||
git annex group share transfer
|
||||
git annex config --set annex.addunlocked true
|
||||
git co -b main
|
||||
|
||||
# Add a single file to the 1st client.
|
||||
cd $DIR/client1
|
||||
touch file.txt
|
||||
git annex add file.txt
|
||||
git commit -m "Initial commit"
|
||||
|
||||
# Needed step for bare repos, as documented in https://git-annex.branchable.com/bare_repositories/
|
||||
cd $DIR/client1
|
||||
git push share main
|
||||
|
||||
###############################################################################
|
||||
# Need to do this if there are no commits in the 'client2' and 'share'
|
||||
# repositories. Or else, I'll get the following logs:
|
||||
#
|
||||
# merge: refs/remotes/share/main - not something we can merge
|
||||
# merge: refs/remotes/share/synced/main - not something we can merge
|
||||
cd $DIR/client2
|
||||
git pull share main
|
||||
###############################################################################
|
||||
|
||||
# Run git-annex assistant for each repository
|
||||
cd $DIR/client1 && git annex assistant
|
||||
cd $DIR/client2 && git annex assistant
|
||||
|
||||
sleep 3;
|
||||
cd $DIR/client1
|
||||
echo "My first line" >> file.txt
|
||||
```
|
||||
|
||||
The repo `client1` correctly contains 2 commits representing changes to `file.txt`.
|
||||
Additionally, `share` and `client2` contain the same commits that were propagated.
|
||||
However, I expected `cat client2/file.txt` to show "My first line", but it shows instead "/annex/objects/SHA256E-s14--42e950c34152a022a2ec82b2201a2287689e39d4d97bfcef67f8940b49d25d4b.txt".
|
||||
|
||||
Doing `git status` in `client2` yield:
|
||||
|
||||
```
|
||||
file.txt is a git-annex pointer file. Its content is not available in this repository. (Maybe file.txt was copied from another repository?)
|
||||
```
|
||||
|
||||
but not sure how to solve this.
|
||||
|
||||
Running `git annex whereis` yields:
|
||||
|
||||
```
|
||||
whereis file.txt (0 copies) failed
|
||||
whereis: 1 failed
|
||||
```
|
||||
|
||||
Any ideas what went wrong?
|
Loading…
Reference in a new issue