Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 2 Mar 2021 20:51:27 +0100
From:      Ulrich =?utf-8?B?U3DDtnJsZWlu?= <uqs@freebsd.org>
To:        Michael Grimm <trashcan@ellael.org>
Cc:        freebsd-git@freebsd.org
Subject:   Re: ports and git, first steps
Message-ID:  <YD6XP9uqNwa9L5y%2B@acme.spoerlein.net>
In-Reply-To: <6996AB6C-B178-48C2-94D4-1F7D62E59998@ellael.org>
References:  <6996AB6C-B178-48C2-94D4-1F7D62E59998@ellael.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 2021-03-02 at 13:23:56 +0100, Michael Grimm wrote:
>Hi,
>
>I am running STABLE-13 and use poudriere (svn+https) to compile my ports of interest.
>
>Disclaimer: I do consider myself a newbie with regard to git.
>
>After my migration from svn to git regarding sources, I recently installed a git repository for ports sources. It is working as expected, good.
>
>But then I added some local ports to the ports directory, which I added to .git/info/exclude. Ok, that worked out.
>
>Now I had had to modify the Makefile of www/wordpress like I did before in the svn ports tree. Now git complained:
>
>	mwn> git status
>	On branch master
>	Your branch is up to date with 'origin/master'.
>
>	Changes not staged for commit:
>	  (use "git add <file>..." to update what will be committed)
>	  (use "git restore <file>..." to discard changes in working directory)
>		modified:   www/wordpress/Makefile
>
>	It took 3.44 seconds to enumerate untracked files. 'status -uno'
>	may speed it up, but you have to be careful not to forget to add
>	new files yourself (see 'git help status').
>	no changes added to commit (use "git add" and/or "git commit -a")
>
>Thus I applied 'git commit':
>
>	mwn> git commit -a -m "modified to compile wordpress without llvm"
>	[master 39b5d0652] modified to compile wordpress without llvm
>	 Committer: admin mer-waases.net <root@mer-waases.net>
>	Your name and email address were configured automatically based
>	on your username and hostname. Please check that they are accurate.
>	You can suppress this message by setting them explicitly. Run the
>	following command and follow the instructions in your editor to edit
>	your configuration file:
>
>	    git config --global —edit
>
>	After doing this, you may fix the identity used for this commit with:
>
>    git commit --amend --reset-author
>	
>	 1 file changed, 1 insertion(+), 1 deletion(-)
>
>Now, 'git status' shows:
>
>	mwn> git status
>	On branch master
>	Your branch is ahead of 'origin/master' by 1 commit.
>	  (use "git push" to publish your local commits)
>
>
>	It took 3.17 seconds to enumerate untracked files. 'status -uno'
>	may speed it up, but you have to be careful not to forget to add
>	new files yourself (see 'git help status').
>	nothing to commit, working tree clean
>
>Well, that looks fine for a git newbie, But there are some questions left for me:
>
>1) Will my commited Makefile become overwritten if the master Makefile becomes modified in the future? (I hope so)

No, due to how I think (!) poudriere works, your change should remain.

>2) Will all upcoming modifications in 'remote.origin.url=git://github.com/freebsd/freebsd-ports.git' be pulled,
>   although 'Your branch is ahead of 'origin/master' by 1 commit.'?

I think poudriere does a `git pull --rebase` always, which fetches 
upstream and then rebases your changes on top. So your local changes 
will always be there, but they can of course come into conflict with 
upstream changes at which point you'll need to resolve those conflicts.

>3) Is there a better, more suited way to deal with local modifications?

I'm not sure. For SVN I used to have a separate myports ports collection 
with the uncommitted changes and I haven't switch to git ports yet. But 
I would just have my local diffs "on top" of upstream.

>4) In analogy to the recommendations for src and git, I did run 'git config pull.ff only'.
>   Is that wrong when it comes to ports (I do not understand what that means, yet)

That might actually be in conflict with the git pull --rebase that 
poudriere does. I assume though that the argv addition will overwrite 
your config setting. But in any case, for a tree with local changes on 
top, ff-only is the wrong choice. Either always git pull --rebase or 
maybe you can make rebase the default via that config (instead of -ff).

hth
Uli



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?YD6XP9uqNwa9L5y%2B>