maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mark Struberg (JIRA)" <j...@codehaus.org>
Subject [jira] Commented: (SCM-444) Git provider does 'git push' during 'mvn release:prepare' which causes unwanted problems
Date Mon, 13 Apr 2009 15:37:52 GMT

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

Mark Struberg commented on SCM-444:
-----------------------------------

good point! Although this is obvious I have never thought that way.

But this mindset would require to redefine the way the release process currently works - or
at least get a different common understanding of it.

Currently releasing an artifact means that it gets tested, tagged and then (with mvn release:perform)a
*clean checkout* happens into target/checkout! How should we do the clean checkout if we do
not push the tag into the upstream repo? In the pom.xml there is only a <scm> section
which points to upstream, so there is no 'easy' way to do a local checkout from ${basedir}.

Any ideas any1? We first need a fully fledged and consistent user story of the whole picture
before we touch the code!


> 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: Olivier Lamy
>            Priority: Minor
>             Fix For: 1.3
>
>
> 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

       

Mime
View raw message