New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unable to trigger pipeline with historical Git commit after material url change #11961
Comments
@arvindsv do you have any opinions/context on this? It feels that there should be a way to override this, or if the GoCD awareness/storage of the 'material revision' is critical, to force the GoCD server to find/load a historical commit that it does not currently know about. I'm sure it's a minefield, but this is a pretty nasty problem. The bigger picture problem is the fingerprint and material identity system not allowing you to indicate 'this url is logically identical to this other URL, just a different repository manager' but that one seems a bit intractable to me 😅 |
Yes, a bit of a minefield. It'll be a little hard to think of the effects of making this change. The fingerprint decided based on the config information, at runtime, needs to match the one in the DB. One challenge I see is that, from a user experience perspective, the change in config will likely be done first (as in Step 4, mentioned above). At this point, the material will be added to the DB with a different fingerprint. There could also be material updates which happen and find commits, which will be inserted into the DB against that material. Now, we need to "merge" those two materials in the DB:
The main problem I see is that the config can be changed outside of GoCD APIs, in a sense. If we had a single point / API call that provided this functionality, we could provide an option while that change is being made, to rewrite the URL in the DB or something. What are you thinking? Do you see a way to do this safely, without causing a lot of problems? PS: Remember that this "functionality" is something we use and recommend for people who sometimes have trouble with the VSM ("add a slash at the end of the URL"). :/ |
Indeed :-)
I'm not really thinking too hard in any direction, but I certainly wasn't thinking of going down some fingerprint merging path. Just too difficult and messy as you allude to. I was wondering if something simpler might unblock things. At root, it seems that the issue is when a material is added, we do not go back through and insert material revisions/ Option 1 I haven't thought it through well at all, but essentially
This would achieve everything one might want to achieve re: fan-in and such, but I think it'd at least allow you to trigger a build with a commit from history - either for a brand new material, OR one where the URL has changed to a new underlying material. User experience would possibly suck too. Option 2 Option 3 I've no idea what consequences there would be for either of these - would probably need testing :-) |
Issue Type
Summary
Hi team, recently our project is updating the VCS platform and it requires a change of the materials' url in the GoCD pipeline configuration, however we noticed that after we changed the material url to point to the new system, we
lost
some of the commits histories when we trigger the pipeline. Understand from @chadlwilson this is due to the nature of the implementation of the GoCD metadata persistence, however would like to check with the team is there any idea/plan to enhance a bit wrt this feature as this is a quite common situation which might encountered by other usersSteps to Reproduce
You might not be able replicate this issue if your branch doesnt have enough historical commits
The text was updated successfully, but these errors were encountered: