www-infrastructure-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <david_jen...@yahoo.com>
Subject Re: Current use of GitHub
Date Mon, 04 Apr 2011 20:48:24 GMT

On Apr 4, 2011, at 10:15 AM, Dmitriy Lyubimov wrote:

>> At the moment I have given up on providing a publicly accessible look into  what
I'm doing until I commit to svn.  AFAICT github is useless for any project undergoing development
since as soon as you do git svn rebase locally to pull in svn commits you can no longer push
your changes to an existing github branch.  If I'm missing something I'd love to know how
to make this work.
> Yes you can do it
> just add github remote.
> say you are on a trunk and your 'origin' points to apache git.
> then
> git remote add github git@github.com:<your-user>/<your-github-repo>
> and then you can push your branches to github e.g.
> git push github trunk:trunk
> What i usually do is i create issues branches locally and set them
> track the branch in github (since i never can push them into ASF) such
> as
> git checkout -b MAHOUT-555  (creates local brunch based on current
> branch, such as trunk)
> git push -u github MAHOUT-555:MAHOUT-555
> now the issue branch is set up to track github's brunch
> so you've done something there (or somebody done something there) then
> assuming you want to commit it by merging -- you can merge directly to
> github branch by
> git fetch github (fetch latest github branch snapshots)
> git checkout trunk (-- make sure we are on local trunk)
> git svn rebase (-- rewind trunk to latest in svn)
> git merge --squash github/MAHOUT-555 (-- merge github branch changes
> but don't commit and squash history so it looks like a single commit )
> //... resolve conflicts if necessary
> git commit -m "MAHOUT-555" (--format squashed history as single commit)
> git svn dcommit (-- push into svn) .
> ...
> now you have squashed issue commited to your local trunk

Hi Dmitriy,

I'm not sure how this relates to what I have been trying.  I'm definitely a git newbie so
might be missing a lot....

here's what I think I tried, from a local git repo that matches apache svn and a github branch:

git remote add github git@github.com....
git branch feature1
git checkout feature1

//do some work locally, committing to local git.

git svn rebase // pull in other changes from apache
git push -u github //I don't remember the exact command I used, but it did get my local changes
to a github branch named feature1

//do some more work locally, committing to local git.
//no one else changed the github branch AFAICT

git svn rebase // pull in more apache changes, resolving merge conflicts

I now can't push my local changes to the same feature1 github branch.  My theory about why
is that I've reordered history on my local git compared to the existing github branch.  I
have no way to verify this :-).  I guess I could create a new github branch every time I push???

david jencks

>> -----
>> git svn rebase is a major pain.  I don't really understand why but it looks to me
like I have to keep resolving the same merge conflicts.  I'm also not completely convinced
that all my local work gets preserved through the merge conflict resolution.
>> I used to use svn branches for ongoing work but with the svn version that tracks
merges I've given up on this because of the enormous volume of noise in an svn merge commit.
>> thanks
>> david jencks
>> On Apr 3, 2011, at 10:17 PM, David Blevins wrote:
>>> I know a few of us use Git for Apache work.  Feel encouraged to lend some feedback
to infra.
>>> -David
>>> Begin forwarded message:
>>>> Resent-From: <dblevins@visi.com>
>>>> From: "Gav..." <gavin@16degrees.com.au>
>>>> Date: April 2, 2011 11:45:10 PM PDT
>>>> To: <infrastructure-dev@apache.org>
>>>> Subject: Current use of GitHub
>>>> Reply-To: infrastructure-dev@apache.org
>>>> I'm trying to understand the _current_ workflows of those ASF committers
>>>> using Git and how the ASF GitHub mirrors tie into that - if at all.
>>>> A fair few projects requested ASF git mirrors and also requested mirrors
>>>> that on GitHub (that 2nd request is now standard with the 1st)
>>>> So far , from projects I've browsed on GitHub, I see a few forks here and
>>>> there and a few Pull requests here and there.
>>>> That is where it gets fuzzy for me. Obviously, no-one can actually pull in
>>>> those pull requests into the Apache/$project repo mirror, so
>>>> how are committers applying those pull requests? Are they pulling them into
>>>> their own copies of the mirror, converting them into a patch
>>>> that svn understands and then applying, if so, how? If not, how else?
>>>> Also, apart from Github, how else are Git only users providing patches to
>>>> projects, which patch programs are in use, and of those which
>>>> are most used by those projects/committers that need to apply them.
>>>> For those of you that are committers and have direct access to svn, but are
>>>> preferring to use Git before then committing your work to svn,
>>>> what is your workflow and tools used (whether or not it involves GitHub)
>>>> No deviating into what could happen or what would be a good idea please yet,
>>>> this is just a survey on what people are currently actually
>>>> doing to incorporate Git into their workflows and how we then get those
>>>> applied.
>>>> Thanks
>>>> Gav...

View raw message