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 togitstarting 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]/
smime.p7s
Description: S/MIME Cryptographic Signature