From: Junio C Hamano <gitster@pobox.com>
To: Beat Bolli <dev+git@drbeat.li>
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: Sat, 27 Apr 2024 10:14:41 -0700 [thread overview]
Message-ID: <xmqqv842683i.fsf@gitster.g> (raw)
In-Reply-To: <30c5852e-c8db-433c-871b-1ae5c87034dc@drbeat.li> (Beat Bolli's message of "Sat, 27 Apr 2024 18:08:50 +0200")
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.
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 17:14 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 [this message]
2024-04-27 22:02 ` Beat Bolli
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=xmqqv842683i.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=dev+git@drbeat.li \
--cc=fisadmaster@gmail.com \
--cc=git@vger.kernel.org \
--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 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.