Re: FIX/COMMENT: git remote manual page

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Nguyen Thai Ngoc Duy <pclouds@xxxxxxxxx> - Sat, 25 Dec 2010 17:48:58
+0700

>On Wed, Dec 22, 2010 at 8:15 AM, Michel Briand <michelbriand@xxxxxxx> 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.

>> 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.

>> 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
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]