Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Sep 2020 13:17:15 -0700
From:      David Wolfskill <david@catwhisker.org>
To:        git@freebsd.org
Subject:   Question on (my) workflow migration svn -> git
Message-ID:  <20200924201715.GR1390@albert.catwhisker.org>

next in thread | raw e-mail | index | archive | help

--PLQVj6KKQ8ndgLWn
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

The migration (of my workflow) from cvs to svn was more "cosmetic"
than anything else -- the data store changed and the commands
changed, but the underlying thought processes behind what I was
doing stayed pretty much the same.

I have no idea if that will be the case for svn -> git, so I'm
putting this out for comments and, perhaps, some useful advice from
folks who are more familiar with git than I am.

Please note: I am not a FreeBSD committer.  I have no desire (let
alone requirement) to cause changes to the FreeBSD code base to
show up with my fingerprints on them.

Details on the below-described workflow may be found at
http://www.catwhisker.org/~david/FreeBSD/upgrade.html; the current
state of things may be seen at
http://www.catwhisker.org/~david/FreeBSD/history/ (in case either
of those is of interest).

TL; DR:  I sync private local mirrors, update working copies, then make
the running systems match the working copies.

Details:
I have a couple of machines that I consider "development" machines;
one is the laptop that I use for day-to-day activities; the other
is a dedicated "build machine" (named "freebeast").  On ecah of
these machines, I perform a daily update of:

* FreeBSD stable/${head - 1}  [currently: 12]
* Locally-installed ports (using the ports "head" branch)
* FreeBSD head

Perhaps more significantly, I keep the two machines in lock-step,
as my activities on my laptop constitute the bulk of my testing of
what will be installed on my small handful of "production" machines
each Sunday (as they get the most recent snapshot of stable/${head
- 1} that freebeast built Sunday morning).

To keep them in lock-step, the build machine performs a cron-initiated
"svnsync" to update a local private mirror of the svn repositories
(src, ports, and doc).  For the laptop, it depends:

* If I'm away from home, it also does the same sort of svnsync (at
  the same time).
* If I'm home, it waits a couple of minutes, then does an rsync
  from the build machine's private local mirror.

In any case, each of them has a private local mirror that is only
updated by the "mirroring" operation -- I don't commit to it.

For each of stable/${head - 1}, head, and ports, the appopriate svn
working copy is updated, using the svn repo as a read-only reference.

Thus (for example), when FreeBSD stable/12 was branched, it was
straightforward for me to "clone" the slice used for head (to a
slice that I was not actively using until then), then use "svn
switch" to change the src working copy to point to stable/12 (vs.
head) -- there would be little substantitiative change, so the
behavior should be quite similar to what I had already experienced
with head.  And once I was comfortable with stable/12, I could
"clone" that to overlay the old stable/11 slice.

(I've been doing this -- well, substitute a few references to cvs
inplace of the svn ones for early days -- since around FreeBSD 3.x
(I'm pretty sure I skipped 5.x, though).  And it's been working
pretty well for me so far.  I've evn been able to point out an
occasional breakage now and then.)

So: Is doing something ... similar ... to the above feasible using
git (vs. svn)?  And if so, may I have a pointer or two to get me
started?  Because it's not at all obvious to me how to accomplish
it.  (E.g., in my use of git so far, the notions of "repository"
and "working copy" seem to be conflated, which does not lead to
warm and fuzzy feelings on my part.)

Thanks!

Peace,
david
--=20
David H. Wolfskill				david@catwhisker.org
"Therefore, this vacancy should not be filled until we have a new
president." -- Mitch McConnell, February 2016

See http://www.catwhisker.org/~david/publickey.gpg for my public key.

--PLQVj6KKQ8ndgLWn
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQGTBAEBCgB9FiEE4owz2QxMJyaxAefyQLJg+bY2PckFAl9s/stfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEUy
OEMzM0Q5MEM0QzI3MjZCMTAxRTdGMjQwQjI2MEY5QjYzNjNEQzkACgkQQLJg+bY2
PcljiAgAjOjB9ZSUPdyOxg7PojeLeMKbxL64Xpqd9hDUkehLBlhM+GnzsDh10roz
SVFQvds+qsCOwiFECNmJZipmnpVE8cES8cWsjrCpAZKIDmmoEOsnQgD9jri+gXOF
sp1+7jk+lSL7vycg8DVcKrvMjUTEBwY4viqD2mjeSvkbDiT5gXKcqffsdNDgeGWe
QZ/xC1nnER8YbsByYFRvbWV71c1wf1ek8HW4GrG3ASH6Jg0JUkyiPzM12qLnFXAA
+L3jPT4j8fQV6nQXv9MyfxybR05DxuviBXKcL1+rV3/VnXO1AIlBZNX5YEsqDNKK
npl3m77UlpC2+QSRhOx/P/1+SEtqbQ==
=GuIT
-----END PGP SIGNATURE-----

--PLQVj6KKQ8ndgLWn--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20200924201715.GR1390>