On Sun, June 30, 2013 5:29 pm, John Ralls wrote: > > On Jun 30, 2013, at 1:38 PM, Derek Atkins <warl...@mit.edu> wrote: > >> Hi all, >> >> Last week I just upgraded my main laptop from Fedora 15 to Fedora 18. >> One of the side effects of this change was that PERL got updates from >> 5.12 to 5.16, and SVK (which I've been using for years) no longer >> works. SVK has long-since been abandoned (back in 2010) which basically >> means I'm not being forced to switch over to git-svn. Yay me. >> >> One of the things that SVK allowed me to do was to have a single copy of >> the repository locally and then from there I could check out multiple >> branches into different WC directories. Whenver I wanted to pull >> changes from the upstream server (svk sync) it would pull those changes >> once into the central repo (on all branches, of course) and then I could >> pull those updates into my WCs (svk update). >> >> I want to replicate this behavior using git/git-svn. Part of my >> reasoning is that if I'm working on 5 different branches I don't feel >> like I need 5 full copies of the repo (although I doubt there is a way >> to get git to do that). However, more importantly, when I pull updates >> from the upstream server I don't want to have to fetch those changes >> independently for each checked-out branch/WC. My reasoning for this is >> that for some of my (non-GnuCash) work the pipe is rather thin and/or >> behind a VPN firewall so I'd like to pull everything once and then >> spread locally. >> >> So I guess this boils does to more of a general git question than >> specifically gnucash, but ---- how do you work with multiple branches >> simultaneously? This is particularly important because of having to >> dcommit back upstream. >> >> My first attempt was to do a git clone --bare and then figuring I could >> git-clone from there for my branches. It converts my 'svk sync' to a >> 'git fetch' in the bare repo and 'svk update' to a 'git-update' (or git >> pull) from my WCs. Alas, this doesn' *quite* work because the git fetch >> fails with: >> >> Fetching origin >> fatal: Couldn't find remote ref HEAD >> error: Could not fetch origin >> >> This is probably because refs/heads/ is empty in the bare repo? >> >> So what do you all do? I'm thinking that once I figure it out I'll >> update the GnuCash Git Wiki Page, although honestly I'm probably the >> last dev to migrate to git :-P >> > > Whew! I was afraid you were going to say that upgrading to perl 5.16 blew > up > git-update! > > I just keep one git repo and flip around the branches as needed. > > Left to itself, git pull will update all of the checked out branches in > the local repo, > but we can't let it do that because each branch needs to have its refs > updated > (particularly for new tags), so git-update only rebases the currently > checked out > branch, so you have to git-update each branch in turn. More important, you > need > to fetch and update between dcommits when you're working in more than one > branch (like backporting a change) or git-svn gets all confused and you > spend a > bunch of time resetting it back and rebasing before it will let you > dcommit again. > > None of which explains why having a local bare clone wouldn't work. In > fact, I just > tried it and it seems to work -- though there aren't yet any changes to > update, it didn't > whine about anything: > $ athena:/Users/john> git clone --bare > git://github.com/Gnucash/gnucash.gitCloning into bare repository > 'gnucash.git'... > remote: Counting objects: 165617, done. > remote: Compressing objects: 100% (27553/27553), done. > remote: Total 165617 (delta 137995), reused 165002 (delta 137411) > Receiving objects: 100% (165617/165617), 109.62 MiB | 4.63 MiB/s, done. > Resolving deltas: 100% (137995/137995), done. > $ athena:/Users/john> cd gnucash.git > $ athena:/Users/john/gnucash.git> git fetch > From git://github.com/Gnucash/gnucash > * branch HEAD -> FETCH_HEAD > $ athena:/Users/john/gnucash.git> > > I'll leave it and try again tomorrow after somebody commits something.
I should note that I cloned from code.gnucash.org, not github.. Maybe that makes a diference due to Master vs. Trunk? I thought Geert was going to fix that, but maybe he didn't, yet? Or maybe I need to? > > Regards, > John Ralls -derek -- Derek Atkins 617-623-3745 de...@ihtfp.com www.ihtfp.com Computer and Internet Security Consultant _______________________________________________ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel