Download raw body.
checkout -E and existing files
On Sat, Sep 16, 2023 at 07:28:59PM +0200, Omar Polo wrote:
> On 2023/09/16 13:26:48 +0200, Stefan Sperling <stsp@stsp.name> wrote:
> > On Sat, Sep 16, 2023 at 01:00:05PM +0200, Omar Polo wrote:
> > > I was overly eager to optimize when I suggested to set {c,m}time to
> > > epoch in the fileindex when checking out over existing files because
> > > the usual (?) case would be to checkout over a previous checkout (or
> > > something that resembles it.)
> > >
> > > However, it seems easier to propagate the info upward from
> > > install_blob() rather than -E down from cmd_checkout().
> >
> > This approach is fine with me.
> >
> > > diff just to illustrate, still lacking a regress.
> >
> > Tweaking test_checkout_into_nonempty_dir somehow to cover this code
> > path should be sufficieut.
> >
> > > P.S. is the manpage wrong too by the way? It says that the statuses
> > > for checkout are A and E, no mention of ? is done. Should we
> > > return E for this case or add ? to the listing?
> >
> > It should say 'E', and test_checkout_into_nonempty_dir checks for 'E'.
> >
> > I am not sure why '?' shows up in naddy's test case. Could you try to
> > tweak the existing test such that '?' gets triggered and then fix the
> > implementation to say 'E' instead?
>
> It's easy to trigger. Checkout something, delete .got and re-checkout
> with -E. All the files in the output are unversioned. I always seen
> this and just assumed is was 'as intended'. I've read that part of
> the manpage only today.
>
> Here's the updated diff with a logic error fixed (update_timestamps
> was always zero...) and a tweaked test case. I've also changed the
> status char, now we report E when attempting to checking out a file
> that already exists but was untracked.
>
> checkout.sh is fine, i'm running the regress but so far seems happy.
Looks good to me, thank you. Ok by me provided regress was indeed happy.
checkout -E and existing files