
on Fri Dec 28 2012, Rene Rivera <grafikrobot-AT-gmail.com> wrote:
Just getting back to this as the drive on my mac is now repaired.. In a totally empty state :-(
On Wed, Dec 26, 2012 at 10:14 AM, Dave Abrahams <dave@boostpro.com> wrote:
on Wed Dec 26 2012, Rene Rivera <grafikrobot-AT-gmail.com> wrote:
OK.. What's is the not manual way to do this without having git?
OK.. That helps somewhat. It makes it possible to just write one piece of code for all testers (since we require python and we can add installing dulwich to that).
It's even possible to write a script that creates a virtualenv and installs dulwich there on demand, so testers don't have to do it manually.
But now I need to figure out what to write to use dulwich (the sample/test scripts don't implement all of the git front end commands fully).
Yeah, I know; dulwich is closer to the "plumbing" than to the "porcelain." John Wiegley is my personal best-person-to-ask about how to use the low-level git bits. John, could you help René with this?
My goal is to have the equivalent of:
git clone -b <branch> --depth 1 --recursive https://github.com/boost-lib/boost.git <some-test-dir>
The first time, but with the shallow depth also applied recursively (something which seems to me to be a bug in git). And subsequent times doing:
git pull --recurse-submodules https://github.com/boost-lib/boost.git<branch>
Or at least that what I understand will give me only the current revision/s the first time. And then get only the subsequent updates correctly applied. Help in verifying that those would be the correct base git commands to emulate is appreciated. For those that will question why I'm going to the trouble.. One of the goals of the testing scripts is to minimize disk space *and* network bandwidth. Hence the convoluted fetch as minimal info as possible and store as minimal info as possible. Which brings a question..
Is there a way to have the local repo only store the current HEAD revision files (i.e. minimize the contents of the .git dir)?
I think that's the shallow clone technique you're using above (--depth 1). Do you have something else in mind?
And also..
Is it possible to only store the specific branch revisions in the git repo dir?
I don't know, but at this point you might consider whether it would be more efficient to simply get the information about submodule refs and then download/unpack all the appropriate .zip files -- Dave Abrahams BoostPro Computing Software Development Training http://www.boostpro.com Clang/LLVM/EDG Compilers C++ Boost