Is there a way in subversion to specify that a specific path is an alias for a different path, with the ability to update that alias as conditions change? Can I lock paths to prevent changes in them?
I’m working on a repository structure and what I’d like to do is have the following paths:
- /versions/1.0 – Previous Release (Locked)
- /versions/1.1 – Previous Release (Locked)
- /versions/1.1.1 – Current Release (Unlocked for patch development)
- /versions/1.1.2 – Next Minor Release (Unlocked for development)
- /versions/1.2 – Next Major Release (Unlocked for development)
- /patch – Alias for /versions/1.1.1, Checkins appear in both places
- /subrelease – Alias for /versions/1.1.2, Checkins appear in both places
- /trunk – Alias for /versions/1.2, Checkins appear in both places
The goal is to keep trunk moving to keep up with where most developers are working. After we release a couple times and 1.2 goes live, the structure would be:
- /versions/1.0 – Previous Release (Locked)
- /versions/1.1 – Previous Release (Locked)
- /versions/1.1.1 – Previous Release (Locked)
- /versions/1.1.2 – Previous Release (Locked)
- /versions/1.2 – Current Release (Unlocked for patch development)
- /versions/1.2.1 – Next Minor Release (Unlocked for development)
- /versions/1.3 – Next Major Release (Unlocked for development)
- /patch – Alias for /versions/1.2, Checkins appear in both places
- /subrelease – Alias for /versions/1.2.1, Checkins appear in both places
- /trunk – Alias for /versions/1.3, Checkins appear in both places
I know I could do this on my own machine, but mandating this in source control gives everyone a common set of verbiage to work with.
To the best of my knowledge, you can achieve something similar to this using the svn:externals property to make a folder act as an alias to another. If you never have to commit in two versions/branches at once, it should work.