git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: How to deal with mixed tree?

From
Pascal Obry <pascal@obry.net>
Date
Nov 22, 2011, 14:20 UTC
Message-ID
<4ECBAFB7.9040505@obry.net>
In-Reply-To
<4ECB8917.8010305@ira.uka.de>
Holger,
> Remove SD in P1, make a logical link from P2 to SD, add SD to
> .git/info/exclude
Thanks for your quick reply. That's what I have tested but...
> (see "Bug report - local (and git ignored) file silently removed after
> checkout" on the mailing list why exclude is better than .gitignore at
> the moment)

Seems like this is working only if file names are different. This is not my case as the replacement is very similar. With the following script I'm expecting empty status and no diff:

<< #!/bin/sh

# create sd (directory that will replace src2) mkdir sd echo sd1 > sd/file1 echo sd2 > sd/file2

# create Git repo mkdir repo cd repo git init mkdir src1 mkdir src2 echo file > src1/file echo 3 > src2/file3 git add . git ci -a -m "first"

# let's replace src2 by sd

rm -fr src2 # ln -s ../sd src2 cp -r ../sd src2

# make sure src2 is excluded
echo 'src2/*' >> .git/info/exclude
# the following output should be clean

echo '============== Status' git status

echo '============== Diff' git diff

>>
But the output is actually:
Initialized empty Git repository in /home/obry/tmp/repo/.git/
[master (root-commit) 527c7a1] first
 2 files changed, 2 insertions(+), 0 deletions(-)
 create mode 100644 src1/file
 create mode 100644 src2/file3
cp: cannot stat `../src': No such file or directory
============== Status
# On branch master
# Changes not staged for commit:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working
directory)
#
#	deleted:    src2/file3
#
no changes added to commit (use "git add" and/or "git commit -a")
============== Diff
diff --git a/src2/file3 b/src2/file3
deleted file mode 100644
index 00750ed..0000000
--- a/src2/file3
+++ /dev/null
@@ -1 +0,0 @@
-3

Any other idea?

Thanks.
-- 
--|------------------------------------------------------
--| Pascal Obry                           Team-Ada Member
--| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE
--|------------------------------------------------------
--|    http://www.obry.net  -  http://v2p.fr.eu.org
--| "The best way to travel is by means of imagination"
--|
--| gpg --keyserver keys.gnupg.net --recv-key F949BD3B
Previous: Holger HellmuthNext: Holger Hellmuth
Message 3 of 8 in “How to deal with mixed tree?”
  1. Pascal ObryNov 22, 2011
  2. Holger HellmuthNov 22, 2011
  3. Pascal ObryNov 22, 2011
  4. Holger HellmuthNov 22, 2011
  5. Pascal ObryNov 22, 2011
  6. Holger HellmuthNov 22, 2011
  7. Pascal ObryNov 22, 2011
  8. Junio C HamanoNov 22, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.