Issue Details (XML | Word | Printable)

Key: SCM-227
Type: Improvement Improvement
Status: Open Open
Priority: Major Major
Assignee: Unassigned
Reporter: Yuri Schimke
Votes: 0
Watchers: 3
Operations

If you were logged in you would be able to see more operations.
Maven SCM

Document use cases for maven-scm-plugin

Created: 15/Aug/06 04:48 AM   Updated: 13/Mar/07 08:28 AM
Component/s: maven-plugin
Affects Version/s: 1.0-beta-3
Fix Version/s: future

Time Tracking:
Not Specified

Complexity: Intermediate


 Description  « Hide
I'm creating a new issue, instead of opening SCM-221 because its really a broader issue.

We are using perforce, but I am not putting this against it, because I hope it will work consistently across all providers.

Its confusing exactly which scenarios are supported by the maven plugin. It seems to work great with the release plugin, but using the scm plugin directly is not straightforward.

There is probably only a handful of reasons people will be using the scm plugin directly, rather than part of something like the release plugin, these include.

1) scm:update or scm:status - to sync or check an existing checkout against HEAD or label. i.e. cruisecontrol.

  • in perforce this would use an existing clientspec.
    2) scm:checkout - to get a new working directory that then supports scm:status, scm:update etc
  • in perforce this would be a new persistent clientspec.
    3) export files from source control e.g. "cvs export",
  • in perforce this would be a new temporary clientspec.

In terms of the direction of the project, the use of system properties seems a bit brittle as these providers might be used multiple times within a mvn build. i.e. the release plugin, checks the local status 1), then does a clean checkout 3). Although I guess the release plugin might just set these option in code anyway, ignoring the system property.

Examples of the problems we are having, scm:checkout works well, but then trying to use scm:update gives you wrong results. Without the page showing the typical use cases of the scm plugin (regardless of SCM provider), its hard to work out if something is a bug or just not supported.



 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Yuri Schimke added a comment - 15/Aug/06 07:18 AM
Hey, this might be largely from unrealistic expectations from my part. I was expecting scm:checkout to immediately give you a valid project that supported scm:update.

However command line p4 tools were not really working until i created the file specified by the P4CONFIG variable. Is it worth creating this file when you specify a persistent checkout?

Anyway, I think the extra documentation could still clear things up. If you see this as useful, I can provide some draft guides in apt format (initially focusing on perforce).