git setup/usage question

Milan Obuch freebsd-git at dino.sk
Thu Jan 28 10:45:27 UTC 2021


On Thu, 28 Jan 2021 02:28:51 -0800, Mark Millard <marklmi at yahoo.com>
wrote:

> On 2021-Jan-28, at 02:08, Milan Obuch <freebsd-git at dino.sk> wrote:
> 
> > On Thu, 28 Jan 2021 01:44:48 -0800, Mark Millard <marklmi at
> > yahoo.com> wrote:

[ snip ]

> >> I do fetch and the --ff merge separately. I use the --ff
> >> style so that if at some point it can not do a fast-forward
> >> it will report that and not do something else. Without the
> >> --ff , if such a mess-up happens, then it will instead do
> >> something else. In other words: I have it validate the
> >> expected type of context actually exists. (Paranoia
> >> coverage.)
> >>   
> > 
> > We do not disagree here. Actually git-merge man page tells --ff is
> > the default, --no-ff being used in some special case. I could be
> > wrong, but to me it looks mentioned special case does not occur
> > when tracking stable branch. If, however, something bad happens, I
> > can still throw away damaged worktree and create new one from
> > scratch.  
> 
> The branch in the .git/ would be "damaged". The problem
> would not be limited to a worktree's separate directory tree.
> (Unless one uses --no-commit on the merge, I guess.)
>

We'll see. When you do not commit anything into repository for that
branch, I can't think of such a possibility. For such case, change flow
(propagation) is 'FreeBSD's git server' ->(git fetch)-> local bare
repository ->(git merge)-> local worktree. As long as you do not commit
anything for given branch, this is unidirectional.

Still worst case scenarion would be throwing away whole repository and
starting from scratch. I do not think of a disaster which would require
this, short of hardware disk failure, but that's it.

[ snip ]

> >> FYI: Warner documented using worktrees without using --bare
> >> for the FreeBSD git context and stated that he would not
> >> document --bare use. I tried what he documented and it
> >> worked just fine for my use.
> >>   
> > 
> > As far as I tested for now, the only difference between standard and
> > --bare usage is no implicit repository and (main) worktree linkage.
> > There may be something else there not discovered yet, but my ongoing
> > testing seems to confirm this is actually the case.  
> 
> You indicated earlier that --bare disallowed --origin use. I
> used the -o freebsd in my clone and have such an origin. I
> can use instructions/documentation that presumes the normal
> origin configuration --and do so "as is" in the instructions.
>

Details covered in my setup description, yet to be published. I found a
way to overcome this limitation as I tested how to achieve what I want.

[ snip ]

> >>> I plan to document my setup soon with simple steps to re-create it
> >>> and some explanations as well. I do not still understand
> >>> everything in detail, but what I tried makes me confident I can
> >>> use git this way effectively.
> >>>   
> >> 
> >> Cool. Sounds like you and David W. may be providing some
> >> support for folks that want to use --bare (examples of
> >> a couple of ways of using git with --bare for FreeBSD).
> >>   
> > 
> > If anybody would like to try something and think they could use my
> > help, just ask. I am far from git expert, but as I was forced to use
> > git now, I found it actually be easy to use and logically built.
> > 
> > I am not happy with dependencies required by our git port, or, more
> > exactly, with number of dependencies (some time in past this
> > stopped me from trying when I saw all the ports required to use
> > git). I'd like to keep port count minimal, but sometimes it just
> > does not work this way.  
> 
> I use devel/git at lite to avoid a bunch of dependencies that I do
> not need. There is also devel/git at tiny that I've not tried. For
> reference:
> 
> OPTIONS_RADIO_PCRE_VERSION=     PCRE PCRE2
> OPTIONS_DEFINE= GUI SVN GITWEB CONTRIB P4 CVS HTMLDOCS PERL ICONV
> CURL \ SEND_EMAIL NLS SUBTREE
> . . .
> .if ${FLAVOR:U} == gui
> OPTIONS_SLAVE+=         GUI
> .elif ${FLAVOR:U} == lite
> OPTIONS_EXCLUDE=        GUI SVN GITWEB CONTRIB P4 CVS PERL
> .elif ${FLAVOR:U} == tiny
> OPTIONS_EXCLUDE:=       ${OPTIONS_DEFINE:NCURL}
> ${OPTIONS_RADIO_PCRE_VERSION} OPTIONS_SLAVE=          CURL
> .endif
> 

I'll try it some time later.

Regards,
Milan


More information about the freebsd-git mailing list