On 12/23/2020 12:01, Warner Losh wrote:
On Wed, Dec 23, 2020 at 7:32 AM Michael Grimm <trash...@ellael.org> wrote:

Hi,

Warner Losh <i...@bsdimp.com> wrote:

The FreeBSD project will be moving it's source repo from subversion to
git
starting this this weekend.
First of all I'd like to thank all those involved in this for their
efforts.

Following
https://github.com/bsdimp/freebsd-git-docs/blob/main/mini-primer.md form
your other mail I was able to migrate from svn to git without running into
any issues.

Right now I am learning how to use git the way I sed svn before. I am just
following 12-STABLE in order to build world and kernel. I am not
developing, neither am I committing.

I wonder how one would switch from a currently used branch (OLD) to
another branch (NEW).

With svn I used:
         svn switch svn://svn.freebsd.org/base/stable/NEW /usr/src

For git I found:
         git branch -m stable/OLD stable/NEW
         or
         git branch -M stable/OLD stable/NEW

git-branch(1):
        With a -m or -M option, <oldbranch> will be renamed to <newbranch>.
If
        <oldbranch> had a corresponding reflog, it is renamed to match
        <newbranch>, and a reflog entry is created to remember the branch
        renaming. If <newbranch> exists, -M must be used to force the
rename to
        happen.

I don't understand that text completely, because I don't know what a
reflog is, yet ;-)

Thus: Should I use "-m" or "-M" in my scenario when switching from
stable/12 to stable/13 in the near future?

I think the answer is a simple "git checkout NEW". This will replace the
current tree at branch OLD with the contents of branch NEW.

git branch -m is different and changes what the branch means. If you did
what you suggested then you'd be renaming the OLD brnach to NEW, which
isn't what I think you're asking about.

Correct -- "git checkout NEW" where "new" is the desired branch you wish to have "active."

If you have made local changes it will tell you to act on that first; the usual is "git stash" to save them.  You can then apply them with "git stash apply" to the *new* branch, assuming that makes sense to do (e.g. a kernel configuration file, etc.) "Stash" maintains a stack which can be manipulated as well (so a "stash" if you already "stash"ed and did not drop it creates a second one, aka "stash@(0) and stash@(1)".

--
Karl Denninger
k...@denninger.net <mailto:k...@denninger.net>
/The Market Ticker/
/[S/MIME encrypted email preferred]/

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to