[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[alf-dev] Revision Specification
|
Tim,
Upon further thought, I think the decision on what to do with the
revision specification (what do source should be retrieved) is going to
be a bit trickier. We have a trade off between treating each SCM system
properly and making a straight forward integration.
The three most common use cases or probably going to be:
1) Get the latest source of my project from the main branch.
2) Get the latest source from some other branch.
3) Get the latest source from a baseline
When you try to map that to data, things get difficult.
The most basic approach would probably be to have a branch and a label.
That would usually be able to identify the latest from head, or the
latest from the branch or a baseline. But that doesn't map terribly well
to many SCM systems.
In Subversion, for instance, there is no proper concept of branch or
label. There are just copies that could be used for either purpose and
are identified with the same kind of path that identifies the project
proper. In other systems (PVCS comes to mind) a more common use case is
going to be the latest on some branch matching some promotion group.
That will look a lot like a label, but be just different enough to cause
problems. Then there's always ClearCase. Trying to apply any of these
basic concepts back to config specs is often painful.
We could come up with some basic concepts that map reasonably well to
most tools, but will be either confusing or non-applicable to other
tools, or we can push the entire revision spec into a tool specific
domain. I think that's probably the more proper approach, but I'd be
happy to be wrong about that. My gut is that it would be nice if each
SCM tool could provide a list of properties that need to be configured
and integrations could be done dynamically based on the result.
Subversion would just want a single path; CVS module, branch and label;
and ClearCase would want a config spec.
Regards,
Eric