[RFC] Triangular Workflow UI improvement

2016-05-30 Thread Jordan DE GEA
>> We are working on full implementation of triangular workflow feature.
>> For now, the main options available are: 
>>   - branch..pushRemote
>>   - remote.pushDefault
>> And only setable by hands. 
> 
> And once it is set, you do not have to worry about it.  I am not
> sure per-branch thing is all that useful, unless you are always
> working on a single branch like 'master', but the latter would be
> just set once and forget about it.

We got the example of our fork of git(e.g. GitHub). 
We want : 
 - some branches that only fetch from git/git and push to our/git
 - the others branches fetch from and push to our/git. 
For now, we have to change branch..remote and 
branch..pushRemote(or remote.pushDefault). 
With branch..fetchRemote, we only have to set this one. 
fetchRemote is more explicit than remote for that case. 

Another point is that many commands can erase the old 
value of branch..remote. 

>> Context:
>>  - One main remote repository, e.g. git/git.
>>  - A remote fork (e.g. a GitHub fork) of git/git, e.g. me/git.
>>  - A local clone of me/git on the machine
>> Purposes:
>>  - the local branch master has to fetch to git/git by default
>>  - the local branch master has to push to me/git by default
> 
> Wouldn't remote.pushDefault be the single thing you need to set just
> once and forget about it?  Why would your users even want to do
> these things …

remote.pushDefault overrides branch..remote for all branches. 
The goal is to give an easily understandable config for 
complex configuration. 
Having all the configuration in the same part (e.g [branch « master »]) 
is easier to understand and edit. 

> 
>>  c. add `git fetch --set-default` in order to set remote.fetchDefault
>>  d. add `git fetch --set-remote` in order to set 
>> branch..fetchRemote
>>  e. add `git pull --set-default` in order to set remote.fetchDefault
>>  f. add `git pull --set-remote` in order to set branch..fetchRemote
>>  a. add `git push --set-default` in order to set remote.pushDefault
>>  b. add `git push --set-remote` in order to set branch..pushRemote
> 
> ... just to configure many variables every time they work on a new
> branch?

branch..pushRemote and all these options are optional.
Options in commands may not be added. It just gives user 
friendly interaction with these options.  



To conclude: 
This feature is more about configuration clarity than possibility itself. 

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[RFC] Triangular Workflow UI improvement

2016-05-30 Thread Jordan DE GEA
In my last message, I forgot to add some important 
contributors linked to this feature. Some of you 
already replied to me. 
I will answer shortly. Sorry for the noise. 

> 
> We are working on full implementation of triangular workflow feature.
> For now, the main options available are: 
>- branch..pushRemote
>- remote.pushDefault
> And only setable by hands. 
> 
> As it can be difficult to understand, here is what we want to do. 
> 
> 
> Context:
>   - One main remote repository, e.g. git/git.
>   - A remote fork (e.g. a GitHub fork) of git/git, e.g. me/git.
>   - A local clone of me/git on the machine
> 
> Purposes:
>   - the local branch master has to fetch to git/git by default
>   - the local branch master has to push to me/git by default
> 
> Configuration wanted:
>   - Add a remote to git/git e.g. `git remote add ...`
>   - Set the fetch remote for branch as default. 
> 
> For now, we can do that by setting: 
>   - branch..remote to git/git
>   - branch..pushRemote to me/git
> But many options set `branch..remote`, a suitable solution is to
> implement an option for the fetch for example. 
> 
> 
> Here is what we want to implement: 
> 
> 1. 
>   a. add the config var: remote.fetchDefault
>   b. add the config var: branch..fetchRemote
>   c. add `git fetch --set-default` in order to set remote.fetchDefault
>   d. add `git fetch --set-remote` in order to set 
> branch..fetchRemote
>   e. add `git pull --set-default` in order to set remote.fetchDefault
>   f. add `git pull --set-remote` in order to set branch..fetchRemote
> 
> 2. 
>   a. add `git push --set-default` in order to set remote.pushDefault
>   b. add `git push --set-remote` in order to set branch..pushRemote
> 
> 
> What's your opinion about this feature ?


--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html