Integration branching
- From
- Kai Hendry <hendry@aplixcorp.com>
- Date
- Apr 7, 2008, 13:02 UTC
- Message-ID
- <b24851260804070602o11b93923m7ce7d79d5f59547b@mail.gmail.com>
I've been asked to setup & host a git repo of an "integration branch" of WebKit for our developers.
So I expected it to work like so:
git clone git://git.webkit.org/WebKit.git git checkout -b test
<Make a few small changes and commit>
git-config remote.upload.url ssh://git.webvm.net/srv/git/webkit-test x61:~/aplix/test/WebKit% git push --thin -v upload test Pushing to ssh://git.webvm.net/srv/git/webkit-test Counting objects: 371612, done. Compressing objects: 100% (67851/67851), done. Writing objects: 11% (43886/371612), 25.32 MiB | 88 KiB/
However when uploading the branch it seems to upload _everything_ which is far too big and impractical. Couldn't it just somehow reference the remote branch and just publish the patch of the "small changes"?
When doing a git-http-push instead of ssh, git resulted in a "Out of memory" error:
1. git clone git://git.webkit.org/WebKit.git # Check it out 2. git checkout -b test # create a "test" branch and switch to it 3. echo blah >> ChangeLog # change something 4. git commit -a # commit that test change 5. git-config remote.upload.url http://moto@moto.webvm.net/moto.git # configure the upload url 6. git push upload test # fatal: Out of memory, malloc failed
Was this the fault of the server(nox) or client(x61)?
x61:~% git --version git version 1.5.4.5 nox:~% git --version git version 1.5.4.4
So is there some better way of publishing a branch? Without uploading the whole WebKit?
I did try something else, that was to create a webkit repo on the server nox like so:
nox:/srv/git/webkit% git --bare init --shared nox:/srv/git/webkit% git --bare fetch git://git.webkit.org/WebKit.git master:master git fetch -f git://git.webkit.org/WebKit.git master:master # again forcing updates
And let developers branch from that. This proved a little cumbersome as I need to manually force updates to webkit trunk when developers asked me to do that. However once a developer cloned ssh://git.webvm.net/srv/git/webkit. Creating a test branch 'deleteme' and then `git push origin deleteme` was extremely fast. So I guess this is the right way to achieve my goals?
Any suggestions and tips would be greatly appreciated!