Re: FIX/COMMENT: git remote manual page
- From
- Michel Briand <michelbriand@free.fr>
- Date
- Dec 25, 2010, 11:41 UTC
- Message-ID
- <20101225124104.06a4f83c@eana.kheb.homelinux.org>
- In-Reply-To
- <AANLkTim_pHYEZ+7-Rm5N4Ycw2MTHD8AhvZrZqNhttkck@mail.gmail.com>
Nguyen Thai Ngoc Duy <pclouds@gmail.com> - Sat, 25 Dec 2010 17:48:58 +0700
Show 23 quoted lines
>On Wed, Dec 22, 2010 at 8:15 AM, Michel Briand <michelbriand@free.fr> wrote: >> Hello, >> >> I tried the example given at the bottom if the manual page of git >> remote. >> >> · Imitate git clone but track only selected branches >> >> $ mkdir project.git >> $ cd project.git >> $ git init >> $ git remote add -f -t master -m master origin git://example.com/git.git/ >> $ git merge origin >> >> It works like it is written. >> >> But it seems this does not work with my special setup: >> - I use GIT_DIR and GIT_WORK_TREE to specify another location for my >> repository, and to work from another directory, >> - I name my remote with a custom name (not origin). > >So you set GIT_DIR and GIT_WORK_TREE before running "git remote add"? >
Yes.
Show 7 quoted lines
>> It fails at the last command : >> >> fatal: <my name> - not something we can merge > >It fails to see "<my name>" points to a commit. Maybe it fails to read >remote information from config.. >
Huh, I don't know.
Show 18 quoted lines
>> But if I try the command : >> >> git merge <my name>/master >> >> the error message is different : >> >> fatal: This operation must be run in a work tree >> fatal: read-tree failed >> >> I cd to the work tree and issue the same last command. >> Then it works. > >What git version are use using? I did > >GIT_DIR=git/.git GIT_WORK_TREE=git git/git merge origin # or a specific branch > >and it worked fine here (recent master). That message means work-tree >settings are not propagated to git-read-tree (run by git-merge).
Hi,
I'm running Debian squeeze. Git is version 1.7.2.3.
Here is the complete command sequence I used:
~/tmp/git $ mkdir toto toto_wk ~/tmp/git $ GIT_DIR=toto GIT_WORK_TREE=toto_wk git init Initialized empty Git repository in xxxxxxxxxxxxxxxx/tmp/git/toto/ ~/tmp/git $ GIT_DIR=toto GIT_WORK_TREE=toto_wk git remote add -f -t master -m master TOTO xxxxxx/shlib Updating TOTO remote: Counting objects: 36, done. remote: Compressing objects: 100% (32/32), done. remote: Total 36 (delta 9), reused 0 (delta 0) Unpacking objects: 100% (36/36), done. From xxxxxxxxxxxxxxxxx/shlib * [new branch] master -> TOTO/master From xxxxxxxxxxxxxxxxx/shlib * [new tag] 1.0 -> 1.0 * [new tag] 1.0.1 -> 1.0.1 ~/tmp/git $ GIT_DIR=toto GIT_WORK_TREE=toto_wk git merge TOTO fatal: This operation must be run in a work tree fatal: read-tree failed ~/tmp/git $ ls toto_wk/ <NOTHING>
I re-issue the latest command :
~/tmp/git $ GIT_DIR=toto GIT_WORK_TREE=toto_wk git merge TOTO Already up-to-date.
Strange isn't it ?
But directory is still empty ~/tmp/git $ ls toto_wk/ <NOTHING>
Trying to recover :
~/tmp/git $ GIT_DIR=toto GIT_WORK_TREE=toto_wk git reset --hard
The directory is correct (in sync with my master branch).
If I do :
...git init ...git remote add... cd toto_wk GIT_DIR=../toto GIT_WORK_TREE=. git merge TOTO
It works !
Adding /master after remote name doesn't make any difference. Please forget this idea.
The problem seems to reside in the work tree parameter (. or not).
Cheers, Michel