This commit is contained in:
https://www.google.com/accounts/o8/id?id=AItOawkS6aFVrEwOrDuQBTMXxtGHtueA69NS_jo 2012-08-20 14:44:08 +00:00 committed by admin
parent 0a6da4f633
commit 0237d77071

View file

@ -1,358 +0,0 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawkS6aFVrEwOrDuQBTMXxtGHtueA69NS_jo"
nickname="Hans"
subject="error: unknown option `no-edit'"
date="2012-08-20T14:27:47Z"
content="""
This might be a bug, or just me not understanding how to operate git-annex
I'm on git-annex version: 3.20120629~bpo60+1
Two computers will be used in the following hans-vita and ij
At hans-vita
mkdir test
cd test
git init
git annex init \"my laptop\"
echo \"some data\" > my.file
git annex add my.file
At ij I now clone hans-vita
git clone ssh://hans-vita/home/hans/test ~/test
Cloning into /home/hans/test...
remote: Counting objects: 10, done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 10 (delta 1), reused 0 (delta 0)
Receiving objects: 100% (10/10), done.
Resolving deltas: 100% (1/1), done.
warning: remote HEAD refers to nonexistent ref, unable to checkout.
Should I worry about that warning?
Continuing, inspite of the warning, at ij
cd ~/test
git annex init \"my desktop\"
init my desktop ok
(Recording state in git...)
The contents of .git/config at ij is now
cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote \"origin\"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = ssh://hans-vita/home/hans/test
[annex]
uuid = 415c56ba-eac9-11e1-b0a2-27785ae2fd77
version = 3
hans-vita needs to be informed about ij, so it has something to sync against
git remote add ij ssh://ij/home/hans/test
Which makes .git/config at hans-vita look as:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[annex]
uuid = 76804bf4-eac8-11e1-8c9b-078f858a8817
version = 3
[remote \"ij\"]
url = ssh://ij/home/hans/test
fetch = +refs/heads/*:refs/remotes/ij/*
git-annex status on hans-vita says
git-annex status
supported backends: SHA256 SHA1 SHA512 SHA224 SHA384 SHA256E SHA1E SHA512E SHA224E SHA384E WORM URL
supported remote types: git bup directory rsync web hook
trusted repositories: (merging origin/git-annex into git-annex...)
0
semitrusted repositories: 3
00000000-0000-0000-0000-000000000001 -- web
415c56ba-eac9-11e1-b0a2-27785ae2fd77 -- here (my desktop)
76804bf4-eac8-11e1-8c9b-078f858a8817 -- origin (my laptop)
untrusted repositories: 0
dead repositories: 0
available local disk space: 369 gigabytes (+1 megabyte reserved)
local annex keys: 0
local annex size: 0 bytes
known annex keys: 0
known annex size: 0 bytes
backend usage:
And on ij, it says
git-annex status
supported backends: SHA256 SHA1 SHA512 SHA224 SHA384 SHA256E SHA1E SHA512E SHA224E SHA384E WORM URL
supported remote types: git bup directory rsync web hook
trusted repositories: (merging origin/git-annex into git-annex...)
0
semitrusted repositories: 3
00000000-0000-0000-0000-000000000001 -- web
415c56ba-eac9-11e1-b0a2-27785ae2fd77 -- here (my desktop)
76804bf4-eac8-11e1-8c9b-078f858a8817 -- origin (my laptop)
untrusted repositories: 0
dead repositories: 0
available local disk space: 369 gigabytes (+1 megabyte reserved)
local annex keys: 0
local annex size: 0 bytes
known annex keys: 0
known annex size: 0 bytes
backend usage:
OK, let's try to sync, start at hans-vita
git-annex sync
commit
fatal: No HEAD commit to compare with (yet)
fatal: No HEAD commit to compare with (yet)
[master (root-commit) 6fdc775] git-annex automatic sync
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 120000 my.file
ok
pull ij
remote: Counting objects: 10, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 8 (delta 2), reused 1 (delta 0)
Unpacking objects: 100% (8/8), done.
From ssh://ij/home/hans/test
* [new branch] git-annex -> ij/git-annex
ok
(merging ij/git-annex into git-annex...)
push ij
Counting objects: 3, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 319 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To ssh://ij/home/hans/test
* [new branch] master -> synced/master
ok
Got two errors, but I guess that is because ij never have run git-annex sync, so there are missing branches.
Try, for the first time ever, git-annex sync from ij:
git-annex sync
commit
fatal: No HEAD commit to compare with (yet)
fatal: No HEAD commit to compare with (yet)
# On branch master
#
# Initial commit
#
nothing to commit (create/copy files and use \"git add\" to track)
ok
fatal: ambiguous argument 'refs/heads/master..refs/heads/synced/master': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions
pull origin
From ssh://hans-vita/home/hans/test
bd89f87..9c983a5 git-annex -> origin/git-annex
* [new branch] master -> origin/master
* [new branch] synced/master -> origin/synced/master
fatal: ambiguous argument 'refs/heads/master..refs/remotes/origin/master': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions
ok
fatal: Not a valid object name: 'master'.
git-annex: failed to update refs/heads/synced/master
No joy.
What is missing? Some branch? hans-vita has
git branch
git-annex
* master
synced/master
git branch
git-annex
synced/master
Does ij need a master of its own? The walkthrough was not enough here for me to understand the requirement, but <http://git-annex.branchable.com/forum/git_pull_remote_git-annex/#comment-e024054af990df6130f9f0a42a6de27a> made me believe that
I need to do this from ij:
git fetch
git merge/master
So I did that, and tried again with git-annex sync from ij
git-annex sync
commit
# On branch master
nothing to commit (working directory clean)
ok
pull origin
ok
Great, now, what happens when hans-vita tries to sync?
git-annex sync
commit
# On branch master
nothing to commit (working directory clean)
ok
pull ij
From ssh://ij/home/hans/test
* [new branch] master -> ij/master
ok
It picks up the new branch at ij, good.
But after I add a file at ij, hans-vita will not sync again. First, here is how I add the file from ij:
cp ../qog.tex .
git-annex add .
add qog.tex (checksum...) ok
(Recording state in git...)
git-annex sync
commit
[master 25e00c5] git-annex automatic sync
Committer: Hans Ekbrand <hans@my.domain>
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 120000 qog.tex
ok
pull origin
ok
push origin
Counting objects: 10, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (8/8), 868 bytes, done.
Total 8 (delta 0), reused 0 (delta 0)
To ssh://hans-vita/home/hans/test
9c983a5..19b0a0c git-annex -> git-annex
6fdc775..25e00c5 master -> synced/master
ok
Now, from hans-vita I try git-annex sync
git-annex sync
commit
# On branch master
nothing to commit (working directory clean)
ok
merge synced/master
error: unknown option `no-edit'
usage: git merge [options] <remote>...
or: git merge [options] <msg> HEAD <remote>
-n do not show a diffstat at the end of the merge
--stat show a diffstat at the end of the merge
--summary (synonym to --stat)
--log add list of one-line log to merge commit message
--squash create a single commit instead of doing a merge
--commit perform a commit if the merge succeeds (default)
--ff allow fast-forward (default)
--ff-only abort if fast-forward is not possible
--rerere-autoupdate update the index with reused conflict resolution if possible
-s, --strategy <strategy>
merge strategy to use
-X, --strategy-option <option=value>
option for selected merge strategy
-m, --message <message>
message to be used for the merge commit (if any)
-v, --verbose be more verbose
-q, --quiet be more quiet
# On branch master
nothing to commit (working directory clean)
ok
pull ij
From ssh://ij/home/hans/test
9c983a5..19b0a0c git-annex -> ij/git-annex
6fdc775..25e00c5 master -> ij/master
6fdc775..25e00c5 synced/master -> ij/synced/master
error: unknown option `no-edit'
usage: git merge [options] <remote>...
or: git merge [options] <msg> HEAD <remote>
-n do not show a diffstat at the end of the merge
--stat show a diffstat at the end of the merge
--summary (synonym to --stat)
--log add list of one-line log to merge commit message
--squash create a single commit instead of doing a merge
--commit perform a commit if the merge succeeds (default)
--ff allow fast-forward (default)
--ff-only abort if fast-forward is not possible
--rerere-autoupdate update the index with reused conflict resolution if possible
-s, --strategy <strategy>
merge strategy to use
-X, --strategy-option <option=value>
option for selected merge strategy
-m, --message <message>
message to be used for the merge commit (if any)
-v, --verbose be more verbose
-q, --quiet be more quiet
# On branch master
nothing to commit (working directory clean)
ok
I can get the change with pure git, though:
git fetch ij
git merge ij/master
Updating 6fdc775..25e00c5
Fast-forward
qog.tex | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 120000 qog.tex
but git-annex sync no longer works from hans-vita
git-annex sync
commit
# On branch master
nothing to commit (working directory clean)
ok
pull ij
error: unknown option `no-edit'
usage: git merge [options] <remote>...
or: git merge [options] <msg> HEAD <remote>
-n do not show a diffstat at the end of the merge
--stat show a diffstat at the end of the merge
--summary (synonym to --stat)
--log add list of one-line log to merge commit message
--squash create a single commit instead of doing a merge
--commit perform a commit if the merge succeeds (default)
--ff allow fast-forward (default)
--ff-only abort if fast-forward is not possible
--rerere-autoupdate update the index with reused conflict resolution if possible
-s, --strategy <strategy>
merge strategy to use
-X, --strategy-option <option=value>
option for selected merge strategy
-m, --message <message>
message to be used for the merge commit (if any)
-v, --verbose be more verbose
-q, --quiet be more quiet
# On branch master
nothing to commit (working directory clean)
ok
What did I do wrong?
"""]]