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

Re: Cherry-pick with symlinks fails horribly

From
Alexander Gladysh <agladysh@gmail.com>
Date
Mar 10, 2010, 18:54 UTC
Message-ID
<c6c947f61003101054j514d8d19g5810deb124ac2106@mail.gmail.com>
In-Reply-To
<c6c947f61003081728u48292de4x6f2c26e1ea9c1756@mail.gmail.com>
Sorry to nag, but... any help?
Alexander.
On Tue, Mar 9, 2010 at 04:28, Alexander Gladysh <agladysh@gmail.com> wrote:
Show 83 quoted lines
> Hi, list!
>
> OS X 10.6.2
> Git 1.7.0.2
>
> I'm complaining about Git symlink handling again. This time it is cherry-pick.
>
> In my repo I have a symlink pointing to a directory.
>
> I swap symlink with the directory in a single commit.
>
> Now, if I try to cherry-pick any later commit from the branch that has
> that swap commit to a branch that have not, cherry-pick fails
> horribly.
>
> See script to reproduce the bug below (run it in a clean directory).
>
> Output example:
>
> $ git cherry-pick <SHA>
>
> Automatic cherry-pick failed.  After resolving the conflicts,
> mark the corrected paths with 'git add <paths>' or 'git rm <paths>'
> and commit the result with:
>
>        git commit -c 6a398597ce7a00fe05f43ff88808303eb151dfb5
>
> $ git status # Note the "Untracked files" section
>
> # On branch master
> # Changes to be committed:
> #   (use "git reset HEAD <file>..." to unstage)
> #
> #       renamed:    a/f -> f1
> #
> # Unmerged paths:
> #   (use "git reset HEAD <file>..." to unstage)
> #   (use "git add/rm <file>..." as appropriate to mark resolution)
> #
> #       added by us:        b/a
> #
> # Untracked files:
> #   (use "git add <file>..." to include in what will be committed)
> #
> #       b/a~HEAD
>
> (Also I've seen git reset --hard to fail afterwards, complaining it
> can't delete a directory, but I can't reproduce it now.)
>
> I see a similar behaviour if I try to do interactive rebase accross
> symlink swap commit.
>
> Alexander.
>
> #! /bin/bash
>
> git init
>
> mkdir a
> touch a/f
> git add a
> git commit -m "a"
>
> mkdir b
> ln -s ../a b/a
> git add b
> git commit -m "b"
>
> git checkout -b branch
> rm b/a
> mv a b/
> ln -s b/a a
> git add .
> git commit -m "swap"
>
> touch f1
> git add f1
> git commit -m "f1"
>
> git checkout master
>
> git cherry-pick `git rev-parse branch` # This one breaks horribly
>
Previous: Alexander GladyshNext: Christian Couder
Message 2 of 7 in “Cherry-pick with symlinks fails horribly”
  1. Alexander GladyshMar 9, 2010
  2. Alexander GladyshMar 10, 2010
  3. Christian CouderMar 11, 2010
  4. Alexander GladyshMar 11, 2010
  5. Christian CouderMar 12, 2010
  6. Junio C HamanoMar 12, 2010
  7. Christian CouderMar 25, 2010

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.