Re: Use of Git with local folders

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 27.04.2024 19:14, Junio C Hamano wrote:
Beat Bolli <dev+git@xxxxxxxxx> 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.







[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux