{"thread":{"id":"42419","subject":"[RFC] Asymetric implementation","startedAt":"2016-05-23T15:09:25Z","lastAt":"2016-05-23T15:09:25Z","messageCount":1,"participants":["Jordan DE GEA"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"287253","messageId":"104FC79E-501B-4AA6-BE73-D0001D78F4B8@ensimag.grenoble-inp.fr","threadId":"42419","inReplyTo":null,"subject":"[RFC] Asymetric implementation","fromName":"Jordan DE GEA","fromEmail":"jordan.de-gea@ensimag.grenoble-inp.fr","sentAt":"2016-05-23T15:09:25Z","receivedAt":"2016-05-23T15:09:25Z","isPatch":false,"sender":{"key":"jordan.de-gea@ensimag.grenoble-inp.fr","avatar":null},"body":"Hi everyone, \n\nhere is the fact, working with an asymetric workflow is not as easy as it could be. \nThere are many options only setting by hands. And they are not easy to use, to understand and sometimes there are not suitable. \n\nThis is an example of what git could do :\nEnvironment : \n- You have the main repository -> A.\n- You have the fork repository of A -> fA\n- You have the clone of fA on your computer. \n- You want to work on fA/master and synchronize your branch A/branch1 with A/master\n\nSo, you need to link the pull request to A/master and the push request to fA/branchA. \n\nConfiguration :\n - branch.branchA.remote with A\n - remote.pushDefault with fA or branch.branchA.pushRemote with fA\n - branch.branchA.merge with fA.\n\nThe steps to set those parameters are not user friendly, not complete and mistakes can happen(with --set-upstream for example)\n\nWe are working on it and have solutions about it. Please, tell me what is the best for you and why ?\n\nHere is the solutions : \n\n1.\na. add the config var : remote.pullDefault\nb. add the config var : branch.<name>.pullRemote\nc. add `git pull --set-default` in order to set remote.pushDefault\nd. add `git pull --set-remote` in order to set branch.<name>.pullRemote\n\nWith that solution, git will have a complete configuration with :\n - branch.<name.>remote, branch.<name>pullRemote and branch.<name>.pushRemote.\n - remote.pullDefault, remote.pushDefault\n\n\n2.\na. add `git pull --set-default` in order to move branch.<name>.remote to remote.pushDefault\nb. add git pull --set-remote` in order to move branch.<name>.remote to branch.<name>.pushRemote\n\nWith this solution, we only add options for commands and not in config file. \n\n\nYou can add your solution. \n\n\nI think that the first one is the best for now and for the future. The second one seems to be the easy way to implement but not the best. \n\n\nWhat is your opinion ? \n\n\nBest Regards. \n\n\n\n\nJordan DE GEA\nENSIMAG 2A - ISI\njordan.de-gea@ensimag.grenoble-inp.fr\n"}]}