Repository manager
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Passed - Unit
No Test Coverage - Build Status
Buildable 50811 Build 47702: arc lint + arc unit
Event Timeline
- mounted() update pattern to match anything between parenthesis
Updating D39472: Ports tree bootstrap tool using git. The program downloads required
source from https://cgit.freebsd.org/ports/plain/ and installs git.
It then uses the newly installed git to clone the ports tree repository.
- mounted() update pattern to match anything between parenthesis
Updating D39472: Ports tree bootstrap tool using git. The program downloads required
source from https://cgit.freebsd.org/ports/plain/ and installs git.
It then uses the newly installed git to clone the ports tree repository.
what advantages does this have over pkg add git?
Or even the following to get the sources and build it (for some tag that may or may not be master):
% fetch https://github.com/git/git/archive/refs/heads/master.zip
% tar xvf master.zip
% cd git-master
% make
and then use that git, uninstalled, to clone the FreeBSD ports repo?
Importing got is also an option. It lacks https:// support, though. It's syntax and defaults differ from the normal git client.
However, the repos are 100% git compatible, so you can switch back and forth between them.
@emaste: maybe that's how we cope here: just import got?
My experience with got is limited, but does seem to be able to clone FreeBSD/src and FreeBSD/ports w/o hassle. I've not 100% checked or verified the resulting trees are the same for everything that matters.
I'm not sure what got.conf, the only visible difference I could see, would do to our builds, etc.
Worth the risk, imho.
I realise I wanted to do too many things at once. The main goal was to have a tool in base that could be able to work with the current ports tree managment. I also had in mind to allow a user to build only one or more port(s) with custom options without having to download/keep the hole ports tree (not implemented but the core functions are there). Anyway, I looked at got and it is the appropriate tool in my opinion.
I would like to discuss briefly why this will not be accepted in the base tree:
- portmgr@ actually discourages usage of ports tree for building ports at end users. Either use binary pkgs or use a poudriere setup to make custom OPTIONS ports for yourself.
- Why? Because binary pkg upgrades are well tested. In addition to that there are fewer chances of a broken ports tree dangling in between the systems. In poudriere you can get to know like whether if there are any ports broken before someone wants to upgrade the system. Which is not the case for portmaster or other methods of portsupgrade.
- When someone is choosing off the beaten path of ports building rather than poudriere building they should be aware about what they are signing up for. However that is not the case at all. There are more bugs reported for ports tree which is the cause of a broken tree on the end users system rather than an actual issue with the tree. However this really affects the time for the committers and is counter productive for them.
- Partial ports tree is not at all something supported by the portmgr@ and never encouraged. Again if someone wants a hack for themselves that is totally upto them and they should be aware of what they are signing up for. And as said as this is not at all encouraged by portmgr@ neither this script will land into base as this will eventually mean that portmgr@ is encouraging partial ports tree which is not correct from the portmgr.
After the evolution of git in our Project undoubtedly we need a solution to bootstrap src and ports tree using git but as git is LICENSED not in favor of our Project we will need to look at it from a different angle and come up with a solution to have a git client to get the ports tree.
However thanks for your work and hacks.
I understand. Thank you for your concern.
As you may have noticed, I was ready to update the review with got-0.86. I prepared the source with the got command only. It is a bit slow in comparaison to git but accomplishes the job.
Should I update it?
As mentioned in my comment about point 4 if it is trying to accomplish installing git using partial ports tree then it really doesn't matter whether if you are using git or got but that will not allow this script to land in the base.
And truly speaking, now I really don't understand the exact purpose of this script compared to a pkg install git-lite and git clone and then install whatever you like to do with the ports tree. I think you should read my previous comments again.
Sorry if I misspoke, I meant got itself not my script. (I) ported got-0.86 sources in /usr/src/contrib. and I use those to build /usr/bin/got and some requirements in /usr/libexec/got/.