git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Josef Wolf <jw@raven.inka.de>
To: git@vger.kernel.org
Subject: Error when "git mv" file in a sparsed checkout
Date: Tue, 7 Nov 2023 14:03:03 +0100	[thread overview]
Message-ID: <20231107130303.GS7041@raven.inka.de> (raw)

Hello,

I have used the procedure described below for many years. In fact,
this procedure is part of a script which I am using for about 10 years.
This procedure was definitely working with git-2-25-1 and git-2.26.2.

Now, with git-2.34.1 (on a freshly installed ubuntu-22.04), this
procedure fails.

Here is what I do:

I want to rename a file on a branch which is not currently checked out
without messing/touching my current working directory.

For this, I first create a clone of the repo with shared git-directory:

  $ SANDBOX=/var/tmp/manage-scans-X1pKZQiey
  $ WT=$SANDBOX/wt
  $ GIT=$SANDBOX/git

  $ mkdir -p $SANDBOX
  $ git --work-tree $WT --git-dir $GIT clone -qns -n ~/upstream-repo $GIT

Then, I do a sparse checkout in this clone, containing only the file
that is to be renamed:

  $ cd $WT
  $ echo 'path/to/old-filename' >>$GIT/info/sparse-checkout
  $ git --work-tree $WT --git-dir $GIT config core.sparsecheckout true
  $ git --work-tree $WT --git-dir $GIT checkout -b the-branch remotes/origin/the-branch
  Switched to a new branch 'the-branch'

Next step would be to "git mv" the file:

  $ mkdir -p /path/to  # already exists, but should do no harm
  $ git --work-tree $WT --git-dir $GIT mv path/to/old-filename path/to/new-filename
  The following paths and/or pathspecs matched paths that exist
  outside of your sparse-checkout definition, so will not be
  updated in the index:
  path/to/new-filename
  hint: If you intend to update such entries, try one of the following:
  hint: * Use the --sparse option.
  hint: * Disable or modify the sparsity rules.
  hint: Disable this message with "git config advice.updateSparsePath false"

This error is something I have not expected.

Error message suggests, there already exists a file named "new-filename". This
is not true at all. There is no file named "new-filename" in the entire
repository. Not in any directory of any branch.

-- 
Josef Wolf
jw@raven.inka.de

             reply	other threads:[~2023-11-07 13:32 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-07 13:03 Josef Wolf [this message]
2023-11-08  2:21 ` Error when "git mv" file in a sparsed checkout Elijah Newren
2023-11-08 11:36   ` Josef Wolf
2023-11-10 20:11     ` Elijah Newren

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231107130303.GS7041@raven.inka.de \
    --to=jw@raven.inka.de \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).