From: Junio C Hamano <junkio@cox.net>
To: git@vger.kernel.org
Subject: Re: "git reset --hard" leaves empty directories that shouldn't exist
Date: Wed, 15 Feb 2006 00:09:09 -0800 [thread overview]
Message-ID: <7vk6bxm4be.fsf@assigned-by-dhcp.cox.net> (raw)
In-Reply-To: <87y80dhxfd.wl%cworth@cworth.org> (Carl Worth's message of "Tue, 14 Feb 2006 23:51:34 -0800")
Carl Worth <cworth@cworth.org> writes:
> I've been exploring the potential for git-sync, and I found some odd
> behavior with "git reset --hard". It appears that if the current tree
> has some directory structure (at least two levels deep) that does not
> exist in the tree being reset to, that empty directories are left
> around after the reset:
>
> $ git --version
> git version 1.2.0.gf6e8
> $ git init-db
> defaulting to local storage area
> $ touch file; git add file; git commit -m "Add file"
> Committing initial tree df2b8fc99e1c1d4dbc0a854d9f72157f1d6ea078
> $ git tag OLD
> $ mkdir -p a/b/c; touch a/b/c/foo; git add a/b/c/foo; git commit -m
> "Add foo"
> $ git checkout -b bogus
> $ git reset --hard OLD
> $ find a
> a
> a/b
> a/b/c
> $
>
> Is this operator error?
Git does not track directories but bends backwards to make empty
directories go away. I do not know if it is an operator error
or not, but it appears sometimes it does not bend hard enough.
Interestingly enough, this seems to do things more carefully.
$ ...
$ git commit -m 'Add file'
$ git branch OLD
$ ...
$ git commit -m 'Add a/b/c/foo'
$ git checkout -b bogo
$ git checkout OLD
next prev parent reply other threads:[~2006-02-15 8:09 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-02-15 7:51 "git reset --hard" leaves empty directories that shouldn't exist Carl Worth
2006-02-15 8:06 ` Shawn Pearce
2006-02-15 8:09 ` Junio C Hamano [this message]
2006-02-16 1:35 ` Linus Torvalds
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=7vk6bxm4be.fsf@assigned-by-dhcp.cox.net \
--to=junkio@cox.net \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.