All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: Duy Nguyen <pclouds@gmail.com>
Cc: per.lundberg@hibox.tv,
	"brian m. carlson" <sandals@crustytoothpaste.net>,
	Git Mailing List <git@vger.kernel.org>,
	jost@tcs.ifi.lmu.de, Joshua Jensen <jjensen@workspacewhiz.com>,
	Junio C Hamano <gitster@pobox.com>,
	git@matthieu-moy.fr, Clemens Buchacher <drizzd@gmx.net>,
	"Holger Hellmuth \(IKS\)" <hellmuth@ira.uka.de>,
	Kevin Ballard <kevin@sb.org>
Subject: Re: [RFC PATCH] Introduce "precious" file concept
Date: Mon, 26 Nov 2018 16:47:09 +0100	[thread overview]
Message-ID: <87pnurzvr6.fsf@evledraar.gmail.com> (raw)
In-Reply-To: <CACsJy8C4deg=M+sjmTBM-qs_=zZ9KarND3MNaR6-MqxukBJoSA@mail.gmail.com>


On Mon, Nov 26 2018, Duy Nguyen wrote:

> On Mon, Nov 26, 2018 at 4:34 PM Ævar Arnfjörð Bjarmason
> <avarab@gmail.com> wrote:
>>
>>
>> On Mon, Nov 26 2018, Duy Nguyen wrote:
>>
>> > On Mon, Nov 26, 2018 at 10:30 AM Per Lundberg <per.lundberg@hibox.tv> wrote:
>> >>
>> >> On 11/13/18 1:22 AM, brian m. carlson wrote:
>> >> > This is going to totally hose automation.  My last job had files which
>> >> > might move from tracked to untracked (a file that had become generated),
>> >> > and long-running CI and build systems would need to be able to check out
>> >> > one status and switch to the other.  Your proposed change will prevent
>> >> > those systems from working, whereas they previously did.
>> >> >
>> >> > I agree that your proposal would have been a better design originally,
>> >> > but breaking the way automated systems currently work is probably going
>> >> > to be a dealbreaker.
>> >>
>> >> How about something like this:
>> >>
>> >> 1. Introduce a concept with "garbage" files, which git is "permitted to
>> >> delete" without prompting.
>> >>
>> >> 2. Retain the current default, i.e. "ignored files are garbage" for now,
>> >> making the new behavior _opt in_ to avoid breaking automated
>> >> systems/existing scripts for anyone. Put the setting for this behind a
>> >> new core.* config flag.
>> >>
>> >> 3. In the plan for version 3.0 (a new major version where some breakage
>> >> can be tolerable, according to Semantic Versioning), change the default
>> >> so that "only explicit garbage is garbage". Include very clear notices
>> >> of this in the release notes. The config flag is retained, but its
>> >> default changes from true->false or vice versa. People who dislike the
>> >> new behavior can easily change back to the 2.x semantics.
>> >
>> > How does this garbage thing interact with "git clean -x"? My
>> > interpretation of this flag/attribute is that at version 3.0 by
>> > default all ignored files are _not_ garbage, so "git clean -x" should
>> > not remove any of them. Which is weird because most of ignored files
>> > are like *.o that should be removed.
>> >
>> > I also need to mark "precious" on untracked or even tracked files (*).
>> > Not sure how this "garbage" attribute interacts with that.
>> >
>> > (*) I was hoping I could get the idea [1] implemented in somewhat good
>> > shape before presenting here. But I'm a bit slow on that front. So
>> > yeah this "precious" on untracked/tracked thingy may be even
>> > irrelevant if the patch series will be rejected.
>>
>> I think a garbage (or trashable) flag, if implemented, wouldn't need any
>> special case in git-clean, i.e. -x would remove all untracked files,
>> whether ignored or garbage/trashable. That's what my patch to implement
>> it does:
>> https://public-inbox.org/git/87zhuf3gs0.fsf@evledraar.gmail.com/
>>
>> I think that makes sense. Users running "git clean" have "--dry-run" and
>> unlike "checkout a branch" or "merge this commit" where we'll now shred
>> data implicitly it's obvious that git-clean is going to shred your data.
>
> Then that't not what I want. If I'm going to mark to keep "config.mak"
> around, I'm not going to carefully move it away before doing "git
> clean -fdx" then move it back. No "git clean --dry-run" telling me to
> make a backup of config.mak is no good.

Understood. I mean this in the context of solving the problem users have
with running otherwise non-data-destroying commands like "checkout" and
"merge" and getting their data destroyed, which is overwhelmingly why
this topic gets resurrected.

Some of the solutions overlap with this thing you want, but I think it's
worth keeping the distinction between the two in mind. I.e. I can
imagine us finding some acceptable solution to the data shredding
problem that doesn't implement this mode for "git-clean", or the other
way around.

  reply	other threads:[~2018-11-26 15:47 UTC|newest]

Thread overview: 86+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-15 13:01 Ignored files being silently overwritten when switching branches Per Lundberg
2018-10-16  6:40 ` Jeff King
2018-10-16  9:10   ` Ævar Arnfjörð Bjarmason
2010-08-17  5:21     ` git merge, .gitignore, and silently overwriting untracked files Joshua Jensen
2010-08-17 19:33       ` Junio C Hamano
2010-08-18 23:39         ` [PATCH] optionally disable overwriting of ignored files Clemens Buchacher
2010-08-19 10:41           ` Jakub Narebski
2010-08-20 18:48             ` Clemens Buchacher
2010-08-20 19:01               ` Joshua Jensen
2010-08-20 20:35           ` Junio C Hamano
2010-08-21  8:05             ` Clemens Buchacher
2010-08-22  7:25               ` Junio C Hamano
2010-08-22  8:20                 ` Clemens Buchacher
2010-10-09 22:39               ` Kevin Ballard
2010-08-21 13:23             ` Clemens Buchacher
2010-10-09 13:52             ` [PATCH 0/5] do not overwrite untracked files in leading path Clemens Buchacher
2010-10-09 13:52             ` [PATCH 1/5] t7607: use test_commit and test_must_fail Clemens Buchacher
2010-10-10  6:35               ` Jonathan Nieder
2010-10-10  8:35                 ` [PATCH 1/5 v2] t7607: use test-lib functions and check MERGE_HEAD Clemens Buchacher
2010-10-13 21:33                   ` Junio C Hamano
2010-10-13 21:59                   ` Junio C Hamano
2010-10-09 13:52             ` [PATCH 2/5] t7607: add leading-path tests Clemens Buchacher
2010-10-09 19:14               ` Johannes Sixt
2010-10-10  8:38                 ` [PATCH 2/5 v2] " Clemens Buchacher
2010-10-09 13:52             ` [PATCH 3/5] add function check_ok_to_remove() Clemens Buchacher
2010-10-13 21:43               ` Junio C Hamano
2010-10-09 13:52             ` [PATCH 4/5] lstat_cache: optionally return match_len Clemens Buchacher
2010-10-09 13:53             ` [PATCH 5/5] do not overwrite files in leading path Clemens Buchacher
2010-10-13 21:57               ` Junio C Hamano
2010-10-13 22:34                 ` Clemens Buchacher
2010-10-15  6:48                   ` Clemens Buchacher
2010-10-15 18:47                     ` Junio C Hamano
2010-08-20 20:46           ` [PATCH] optionally disable overwriting of ignored files Junio C Hamano
2010-08-21  6:48             ` [PATCH v2] " Clemens Buchacher
2010-08-23  8:33           ` [PATCH] " Matthieu Moy
2010-08-31 18:44             ` Heiko Voigt
2010-08-23  9:37           ` Matthieu Moy
2010-08-23 13:56             ` Holger Hellmuth
2010-08-23 15:11               ` Clemens Buchacher
2010-08-23 15:57                 ` Junio C Hamano
2010-08-24  7:28                   ` Clemens Buchacher
2010-08-24 16:19                     ` Junio C Hamano
2018-11-06 12:41       ` Checkout deleted semi-untracked file Steffen Jost
2018-11-06 15:12         ` Ævar Arnfjörð Bjarmason
2018-11-11  9:52           ` [RFC PATCH] Introduce "precious" file concept Nguyễn Thái Ngọc Duy
2018-11-11 12:15             ` Bert Wesarg
2018-11-11 12:33             ` Ævar Arnfjörð Bjarmason
2018-11-11 13:06               ` Ævar Arnfjörð Bjarmason
2018-11-12 16:14                 ` Duy Nguyen
2018-11-11 15:41               ` Duy Nguyen
2018-11-11 16:55                 ` Ævar Arnfjörð Bjarmason
2018-11-12  7:35                 ` Per Lundberg
2018-11-12  9:08                   ` Matthieu Moy
2018-11-12  9:49                     ` Ævar Arnfjörð Bjarmason
2018-11-12 10:26                       ` Junio C Hamano
2018-11-12 12:45                         ` Ævar Arnfjörð Bjarmason
2018-11-12 13:02                           ` Junio C Hamano
2018-11-12 16:07                     ` Duy Nguyen
2018-11-12 23:22               ` brian m. carlson
2018-11-26  9:30                 ` Per Lundberg
2018-11-26 10:28                   ` Ævar Arnfjörð Bjarmason
2018-11-26 12:49                   ` Junio C Hamano
2018-11-27 15:08                     ` Ævar Arnfjörð Bjarmason
2018-11-28  3:58                       ` Junio C Hamano
2018-11-28 21:54                         ` Ævar Arnfjörð Bjarmason
2018-11-29  5:04                           ` Junio C Hamano
2018-12-01  6:21                           ` Duy Nguyen
2018-11-26 15:26                   ` Duy Nguyen
2018-11-26 15:34                     ` Ævar Arnfjörð Bjarmason
2018-11-26 15:40                       ` Duy Nguyen
2018-11-26 15:47                         ` Ævar Arnfjörð Bjarmason [this message]
2018-11-26 15:55                           ` Duy Nguyen
2018-11-27  9:43                             ` Per Lundberg
2018-11-27 12:55                               ` Jacob Keller
2018-11-27 14:50                                 ` Per Lundberg
2018-11-28  1:21                                   ` brian m. carlson
2018-11-28  6:54                                     ` Per Lundberg
2018-11-27 15:19                                 ` Duy Nguyen
2018-12-06 18:39                                 ` Duy Nguyen
2018-11-26 16:02                 ` Eckhard Maaß
2018-11-11 12:59             ` Junio C Hamano
2018-11-26 19:38             ` [PATCH v2 0/2] Precios files round two Nguyễn Thái Ngọc Duy
2018-11-26 19:38               ` [PATCH v2 1/2] Introduce "precious" file concept Nguyễn Thái Ngọc Duy
2018-11-26 19:38               ` [PATCH v2 2/2] unpack-trees: support core.allIgnoredFilesArePreciousWhenMerging Nguyễn Thái Ngọc Duy
2018-10-16 15:05     ` Ignored files being silently overwritten when switching branches Duy Nguyen
2018-10-18  1:55       ` Junio C Hamano

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=87pnurzvr6.fsf@evledraar.gmail.com \
    --to=avarab@gmail.com \
    --cc=drizzd@gmx.net \
    --cc=git@matthieu-moy.fr \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=hellmuth@ira.uka.de \
    --cc=jjensen@workspacewhiz.com \
    --cc=jost@tcs.ifi.lmu.de \
    --cc=kevin@sb.org \
    --cc=pclouds@gmail.com \
    --cc=per.lundberg@hibox.tv \
    --cc=sandals@crustytoothpaste.net \
    /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.