I got my port done but now how can I keep this update?

Hi guys,

I am trying to figure out how to keep "my port" update.

I have the "working stuff" on my home, but then I need to test it on Poudriere. If I run the command to update Poudriere it complains that "my port" was modified so it refuse to proceed over.

I already updated it before to start working, so I guess I am fine, I am just trying to wrap my head around this issue, maybe there is a better approach or method.

Thanks in advance!

🙏
 
Branch the ports tree poudriere uses. Commit your updates to this development branch. Update the main branch, then rebase your development branch with main. Let poudriere build packages using your development branch.

Note that by default poudriere will do a shallow clone of a ports tree. You can't branch that. Make sure to add the -D option to get a "full" clone.
 
Simple workflow example:
Code:
poudriere ports -c -D -p devports
cd /usr/local/poudriere/ports/devports
git checkout -b mydev_branch
# make your changes to the port and commit those. 
poudriere bulk -j 151-release -p devports -f mypackagelist.txt
# or
poudriere testport -j 151-release -p devports category/myport

If you want to sync up that devports tree with upstream ports tree;
Code:
cd /usr/local/poudriere/ports/devports
git checkout main
git pull -p
git checkout mydev_branch
git rebase main
# Fix any merge conflicts
 
I don't believe I can update anything through Git, I understood that you need to go through a process, request authorization, etc. I will continue to upload the patch through the Bugzilla system. But I will definitely use your recommendation to create a development branch. Thank you very much! 🙏
 
I don't believe I can update anything through Git, I understood that you need to go through a process, request authorization, etc.
It's all done in your local working copies. You're not actually 'pushing' those changes to the FreeBSD git repositories because that would indeed require authorization.
I will continue to upload the patch through the Bugzilla system.
Yes, and you can make that patch quite simply; git diff main, or even better; git format-patch main


In my examples I simply used the ports tree poudriere checked out, instead of a separate ports tree checkout in a scratch directory. Poudriere does nothing special, it is a git clone like any other. So you can treat it like any other locally checked out git repository. The only caveat is that poudriere makes a shallow clone by default, you don't want that, you need a "full" clone.
 
  • Thanks
Reactions: mrd
Back
Top