From: Beat Bolli <dev+git@drbeat.li>
To: Junio C Hamano <gitster@pobox.com>
Cc: Felipe Bustamante <fisadmaster@gmail.com>,
git@vger.kernel.org, 'Karthik Nayak' <karthik.188@gmail.com>
Subject: Re: Use of Git with local folders
Date: Sun, 28 Apr 2024 00:02:35 +0200 [thread overview]
Message-ID: <c40c7a11-6d5c-4d93-8675-93b505a38e64@drbeat.li> (raw)
In-Reply-To: <xmqqv842683i.fsf@gitster.g>
On 27.04.2024 19:14, Junio C Hamano wrote:
> Beat Bolli <dev+git@drbeat.li> writes:
>
>> What would work in my opinion is this, if I understand you correctly:
>>
>> 1. In the Git repo of day 1, remove all files except for the .git
>> folder. This is to make sure ...
>> 4. Continue from step 1 for each remaining day.
>>
>> This will result in one repository that has one commit per day. Going
>> forward, you'd probably want to commit more often so that your commits
>> comprise a meaningful unit of work instead of arbitrary day
>> boundaries.
>
> Hmph, perhaps I am misunderstanding things, but I didn't read in the
> original or the follow-up from the OP any wish to "squash" a day's
> worth of activities into a single commit each.
>
I guess my brain just implied from those daily copies that there was
just one commit at the end of the day.
Your explanation below makes more sense.
> Let me make sure what I understood from the follow-up from the OP is
> not too far away from the reality. I thought the day's activity is
>
> * The whole "repository + working tree" from day (N-1) is copied
> into a new "repository + working tree" for day N, to let the user
> to play in. Then the user hacks away, creating commits on top of
> the HEAD.
>
> So there may be a directory structure
>
> - FBustamante/
> - Day-01/
> - .git/
> - COPYING
> - ...
> - Day-02/
> - .git/
> - COPYING
> ...
> - Day-10/
> - .git/
> - COPYING
> - ...
>
> but Day-10/.git has ALL the history for everything. Day-10/.git
> is a superset of Day-09/.git, which in turn is a superset of
> Day-08/.git, etc. all the way down to Day-01/.git/.
>
> If that is the case, and if the end state of each day needs to be
> given a "label" so that it is easily discoverable, then what I would
> do would be something like:
>
> $ cd FBustamante
> $ cp -a Day-10 ALL
>
> to first prepare an exact copy of Day-10 in ALL, and then
>
> $ for d in Day-??
> do
> rev=$(git -C "$d" rev-parse HEAD)
> git -C ALL tag "$d" "$rev"
> done
>
> to go in to each day's repository to grab its HEAD, and make a tag
> for that commit in the ALL repository.
>
> Then doing the usual things like
>
> $ cd ALL
> $ git log Day-01
> $ git log Day-02..Day-04
>
> should give us what happend on the first day, what happened on the
> third and fourth day, etc., as expected.
>
>
next prev parent reply other threads:[~2024-04-27 22:02 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-25 16:19 Use of Git with local folders Felipe Bustamante
2024-04-26 10:16 ` Karthik Nayak
2024-04-26 15:56 ` Felipe Bustamante
2024-04-27 16:08 ` Beat Bolli
2024-04-27 17:14 ` Junio C Hamano
2024-04-27 22:02 ` Beat Bolli [this message]
2024-04-29 15:44 ` Felipe Bustamante
-- strict thread matches above, loose matches on Subject: below --
2024-04-29 15:47 Felipe Bustamante
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=c40c7a11-6d5c-4d93-8675-93b505a38e64@drbeat.li \
--to=dev+git@drbeat.li \
--cc=fisadmaster@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=karthik.188@gmail.com \
/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 read-only IMAP folder(s) and NNTP newsgroup(s).