
That sounds like a nightmare to me.Ant P. wrote:That's an interesting thought actually - with the ability to create an infinite number of branches, ~arch isn't needed. Debian already kind of does the same thing but by hand.
That seems like an odd choice for a distribution to make.The main thing, for me, that the git move will allow, is a chance to break up the gigantic main portage tree into more appropriately-sized chunks. Right now it's already mostly a pile of ebuilds already present in several git overlays; with git as the main distribution method those could stay where they are. Things like half of app-dicts could live in a separate overlay too.
You're reading the word "infinite" too literally.steveL wrote:That sounds like a nightmare to me.
Yeah, none of what I said needs Git.That seems like an odd choice for a distribution to make.
Note none of this has to do with the vcs used; rather it's about not using a new vcs as an excuse to throw away working methodologies that are nothing to do with version control, and everything to do with sensible maintenance.

That's an asymptotic analysis of Git. To be fair, we should also apply themgorny wrote:...
Of course, in a longer term there's the fact that git also gives you intermediate commits that may not be relevant anymore.

Either way, you can do it on a local overlay and it won't interfere. This has the advantage that if the checksum is still wrong after the new sync, you don't lose your fix.ct85711 wrote:[…] for like times that the checksum on a ebuild is bad (happens once and a while on ~amd64 tree). On rsync, I can just go ahead and rebuild the checksum and continue on with building my system and syncing will have no issue later on. On git, if I did this, I'd later have to wipe my entire tree to resync again; though on the other hand, I could possibly push a updated ebuild/patch to the tree to be reviewed when the associated bug report isn't getting looked at.
It's just a matter of settings, you know. We can easily make Portage do a hard git reset before pulling :).ct85711 wrote:One thing that may want to point out on differences, is how sensitive changing the portage's tree is to the operation. On rsync, it just removed any files all extra files, so it doesn't care if there was a change done locally to the tree or not, it'll just wipe the change and go on; while git locks up. For a lot of people this isn't too big of an issue, for me it can get to be a annoyance. The reason being for like times that the checksum on a ebuild is bad (happens once and a while on ~amd64 tree). On rsync, I can just go ahead and rebuild the checksum and continue on with building my system and syncing will have no issue later on. On git, if I did this, I'd later have to wipe my entire tree to resync again; though on the other hand, I could possibly push a updated ebuild/patch to the tree to be reviewed when the associated bug report isn't getting looked at.
No, 'git reset --hard' just cleans up all changes from the working tree and index (i.e. those added via 'git add'). Likely would need to be accompanied by 'git clean -dfx' to remove extraneous files.ct85711 wrote:mgorny: Just a question, but if you configure portage to do a hard reset before pulling every time, wouldn't that end up pulling the whole tree all over and cause a lot more traffic on the server? I'm not too experienced with git, to know exactly how that would work. From my understanding doing a hard reset on the tree wipes the tree and starts over, so cause more traffic on the server. I'm not so worried about the traffic on my side, but I would think we don't want to put an excessive amount of load on the server side (I am thinking more ppl than just me doing this).

I am not sure what you mean, however here is some clarification on my side:tw04l124 wrote:I really love benchmarks when they are over the net.
Benchmark is only valid when it is done 5-10 times and it is reproduceable.
So a setup with local boxes with no load and other influences
AFAIK git provides more security as the approach we use now. AS discussed months ago about git / rsync portage here