Community
Participate
Working Groups
The current representation of ChangeSet includes a list of SCMArtifacts that were subject to change, however there is no reference to the interesting base of comparision. From a repository perspective, the anscestor would the obvious choice, however that does not suit the case for version control systems like CVS or Clear Case where the actual compare "from/ base" version will be selected by the user. It is still possible to use and leave the application to raise the level and convert to a meaningful changeset, however it seems like modifying the list of SCMArtifact as follows shall fit the needs to non commit and commit based version control systems. SCMArtifactDiff { SCMArtificat base; SCMArtifact target; } ChangeSet { //Change from: List<ScmArtifact> artifacts = new ArrayList<ScmArtifact>(); //Change To: List<SCMArtifactDiff> artifacts = new ArrayList<SCMArtifactDiff>(); } The above structure can simplify the resolution of base artifacts in Git, so there is no need to traverse the tree to find the base every time it needs to be resolved. The above will also enable a CVS or Clear Case wizard to store the base and target information selected by the user.
Agreed that we need a representation for the base and target revision. I have commented on bug 334761 to that regard.
I would recommend that Changeset, along with most other scm model objects (except ScmArtifactInfo), should be immutable, as the connector creates them, and could possibly provide a specialized subclass of it. A Changeset in a repository can't be modified either. The model above could work, I was worried with having a big graph of objects, which could be traversed, and we would either end up loading the entire repository into memory or having some lazy loading mechanism with possibly long load times. Would the model of bug 334761 also work for you Alvaro?
The comments on Bug 334761 are much inline with the comments in this bug, both integrate a Change (Base and Target), so it will work. I think we have the following bugs affected by this change: Bug 34771, Bug 33759, Bug 334761 and this one.
Upps !! On previous comments I meant: Bug 334771, Bug 334759, Bug 334761 and this one.
I've should been clearer, I've meant the proposed model by Steffen on bug 334761 comment 3.
Mylyn has been restructured, and our issue tracking has moved to GitHub [1]. We are closing ~14K Bugzilla issues to give the new team a fresh start. If you feel that this issue is still relevant, please create a new one on GitHub. [1] https://github.com/orgs/eclipse-mylyn