We have a project with a few thousand files that has source control history going back nearly two decades.
Revision 1 → Revision 2 → Revision 3 ... Revision 18352
And them someone wanted to take a copy of the current development for another customer. But rather than make a copy, they simply added them to a new folder in SVN - losing all history:
| Customer A | Customer B |
|---|---|
| Revision 1 (2005) | Revision 18432 (2018) |
| Revision 2 | Revision 18421 |
| Revision 3 | Revision 18589 |
| Revision 219 | Revision 18968 |
| Revision 17768 | |
| Revision 18352 |
When it was time to create another branch for another customer, i made sure to create a copy of the Customer B branch - so that i had as much code history as possible:
| Customer A | Customer B | Customer C |
|---|---|---|
| Revision 1 (2005) | Revision 18432 (2018) | |
| Revision 2 | Revision 18421 | |
| Revision 3 | Revision 18589 | |
| Revision 219 | Revision 18968 | |
| Revision 17768 | copied to new branch→ | Revision20972 (2022) |
| Revision 18352 | Revision20973 | |
| Revision20975 | ||
| Revision21006 | ||
| Revision21248 |
But the code i'm working on is now missing a decade and a half of source history.
So the question is
How do i re-parent Revision 18432 in Customer B branch to retroactively say it was a copy of Revision 18352 in Customer A branch:
| Customer A | Customer B | Customer C |
|---|---|---|
| Revision 1 (2005) | ||
| Revision 2 | ||
| Revision 3 | ||
| Revision 219 | ||
| Revision 17768 | ||
| Revision 18352 | ||
| ⬑ parent | Revision 18432 (2018) | |
| Revision 18421 | ||
| Revision 18589 | ||
| Revision 18968 | ||
| ⬑ parent | Revision20972 (2022) | |
| Revision20973 | ||
| Revision20975 | ||
| Revision21006 | ||
| Revision21248 | ||
| Revision20975 | ||
| Revision21006 | ||
| Revision21248 |