You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Johannes Schneider (JIRA)" <ji...@codehaus.org> on 2010/01/19 16:59:55 UTC

[jira] Commented: (SCM-444) Git provider does 'git push' during 'mvn release:prepare' which causes unwanted problems

    [ http://jira.codehaus.org/browse/SCM-444?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=207489#action_207489 ] 

Johannes Schneider commented on SCM-444:
----------------------------------------

Okay, just my opinion: I run into that problem, too. I really *hate* that push. I prefer to do that manually after everything worked as expected. And sometimes I prefer to adjust that commits too (multi module projects).
At the moment I end up deleting tags from origin and often doing a "git push -f" if something failed (e.g. site generation)...
That does not seem to be the best solution...

Others here have also said, that they prefer *not* being forced to push to origin. So there are the user stories you asked for.

So the solution seems to be very simple:
- Clone from ${basedir} instead of origin during the release. That might solve some other issues too (performance, traffic, merge conflicts when origin has changed in between).
- Make the push optional! That allows everybody to follow his preferred work flow. 

While I strongly believe that *distributed* VCS never should push automatically, I accept that some people out there are still "brainwashed" by the use of a centralized VCS for decades.
So for me it is ok, to push by default. But please offer an option to skip that...


By the way: Thanks for your work...

> Git provider does 'git push' during 'mvn release:prepare' which causes unwanted problems
> ----------------------------------------------------------------------------------------
>
>                 Key: SCM-444
>                 URL: http://jira.codehaus.org/browse/SCM-444
>             Project: Maven SCM
>          Issue Type: Bug
>          Components: maven-scm-provider-git
>    Affects Versions: 1.1
>            Reporter: Petter Måhlén
>            Assignee: Mark Struberg
>            Priority: Minor
>
> When doing 'mvn release:prepare' with a Git provider, a 'git push' command is executed. This is not ideal because the push command can fail or push things from the local repository that are not needed/wanted in the remote repository. Some examples are:
> 1. The local repository has two branches: master (tracking origin/master) and dummy (tracking origin/dummy). The release is being made on the master branch, and the dummy and origin/dummy branches have diverged. Running 'release:prepare' causes a 'git push', which will succeed for the master branch (assuming that the release preparation has been made correctly) and fail for the dummy branch (the two branches have diverged and need to be merged or rebased). The release preparation aborts and the directory is left in a somewhat inconsistent state where manual cleaning up is needed (removing pom.xml.next files, changing versions to <new>-SNAPSHOT, etc.)
> 2. The local repository has two branches: master (tracking origin/master) and localtest (not in the origin repository). The localtest branch shouldn't be published because it is just used for some temporary testing and doesn't even work. It will be pushed during 'release:prepare'.
> Suggested behaviour: use 'git push origin <currentbranch>:<currentbranch>', or even better, query for which remote repository to push to (found in .git/config) and which branch to push from and to. For me, it would be great to have a 'confirm push' before doing it so as to keep things clean, but maybe that is quite complex.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira