[ 
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


Reply via email to