Non-commiter github workflow

reubano reubano at gmail.com
Wed Aug 22 05:44:28 EDT 2012


John Ralls-2 wrote
> 
> On Aug 21, 2012, at 8:01 AM, reubano <reubano@> wrote:
> 
>> I propose the current git wiki[1] be edited. Right now it says "If you
>> have a
>> Github account, it turns out that Github's "fork" feature doesn't play
>> well
>> with the Gnucash repository because of its unusual structure (which in
>> turn
>> is needed to synch it with subversion)." This doesn't make it clear that
>> forking is ok in some circumstances.[2]
>> 
>> And if I'm understanding things, I should be able to:
>>    fork
>>    clone (my personal fork)
> 
> git remote add gc git://github.com/Gnucash/gnucash.git #See
> https://help.github.com/articles/syncing-a-fork
> 
>>    git branch -t master refs/remotes/origin/trunk
>>    git branch working
>>    <write code>
> 
> make && make check                      # Don't commit broken code
> git commit -a                                  # Git won't let you do
> anything until you commit your tree
> git checkout master
> git pull remotes/gc/trunk                 # Otherwise the next step won't
> do anything
> 
>>    git rebase master working
> 
> git format-patch master                   # Git format-patch needs a
> starting ref for format-patch
> 
>>    git push -u origin master
>>  ...
>> 
>> Is this correct?
> 
> Almost.  I've added/changed some steps. Note that the github doc I reffed
> above uses git fetch and git merge separately; git pull does both steps at
> once.

Ok, so for completeness this should be the full set of steps
    fork
    clone # Clone personal fork for offline development
    git remote add gc git://github.com/Gnucash/gnucash.git #See
https://help.github.com/articles/syncing-a-fork
    git branch -t master refs/remotes/origin/trunk
    git branch working
    <write code>
    make && make check            # Don't commit broken code
    git commit -a                        # Git won't let you do anything
until you commit your tree
    git checkout master
    git pull remotes/gc/trunk       # Otherwise the next step won't do
anything
    git rebase master working
    git format-patch master         # Git format-patch needs a starting ref
for format-patch
    git push -u origin master

John Ralls-2 wrote
> 
> On Aug 21, 2012, at 8:01 AM, reubano <reubano@> wrote:
>  
>> My suggestion is to have 'Basic (GitHub) Set-Up' and 'Advance (Non
>> GitHub)
>> Set-Up' sections to accommodate the cloning differences, i.e.,
>>    git clone git://github.com/Gnucash/gnucash.git
>>    git remote add myname-github <remote server>:myname/gnucash.git
> 
> Huh? You shouldn't clone Gnucash/gnucash.git and then push back to a new
> github repo: That new repo's title won't show that it's forked from
> Gnucash/gnucash and  the "Network" stuff won't work.

I agree that you should need to clone Gnucash/gnucash.git but I was just
repeating the wiki instructions[1] 


wiki wrote
> 
> Just clone the repository as usual:
>     
>     git clone git://github.com/Gnucash/gnucash.git
> 
> <snip>
> 
> Instead, create a repository in your account (you can name it whatever you
> like, but calling it Gnucash is likely to minimize confusion), then clone
> the Gnucash/gnucash repository on your local computer. Add your Github
> Gnucash repo as a remote
> 
>     git remote add myname-github git at github.com:myname/gnucash.git

[1] http://wiki.gnucash.org/wiki/Git#Non-Committers

At any rate, I think it is a moot point if we recommend forking and just
remove this step altogether.


John Ralls-2 wrote
> 
> On Aug 21, 2012, at 8:01 AM, reubano <reubano@> wrote:
> 
>> vs
>>    fork
>>    git clone https://github.com/user/gnucash.git (just list HTTPS
>> assuming
>> those who want SSH will already know how to do it)
>> 
>> And then have a 'Contributing Code' section beginning with branching
>> instructions. *OR* to make it even simpler, just list everything for a
>> GitHub setup first and at the end add a note for those who don't use
>> GitHub
>> to clone and 'git remote add'.
> 
> You seem not to have grokked that we're not really interested in
> integrating with Github's way of doing things, setting aside that they
> keep changing it. For example, the *last* time I looked, you could sync a
> fork from the website, which is what didn't play well with the git-svn
> bridge. That's gone and you have to do it locally as described above. I'm
> not sure that we want to encourage people to publish their forks on
> Github, or anywhere else. Accounting software isn't a domain where
> fast-and-loose development is a good idea.

I understand that there is no intention on integrating with github pull
requests and issues. What I am concerned about is making it easy for
developers to contribute. In support of this, I think forking and following
the steps above provides that.




--
View this message in context: http://gnucash.1415818.n4.nabble.com/Non-commiter-github-workflow-tp4656382p4656402.html
Sent from the GnuCash - Dev mailing list archive at Nabble.com.


More information about the gnucash-devel mailing list