ฉันพบแนวทางที่ดีเยี่ยมสำหรับสถานการณ์นี้ :
If you want to be able to both develop a newer version (in trunk) and
fix bugs on an older version, what you want is a branch for the older
version. You can fix your bug in the older version's branch, then
make a new tag of that.
Example:
/repo/
project/
trunk/
branches/
tags/
You've developed your software in trunk and are now ready to call it
version 1.0. You make a branch and a tag:
svn cp $REPO/project/trunk $REPO/project/branches/1.x
svn cp $REPO/project/branches/1.x $REPO/project/tags/1.0
/repo/
project/
trunk/
branches/
1.x/
tags/
1.0/
Now you continue to develop in trunk, adding new features, and this
will eventually become version 2.0. But while you're doing this, you
find a bug in 1.0 and need to fix it quick. So you check out branches/
1.x, make the change, test it, and commit it. Then you tag that as 1.1:
svn cp $REPO/project/branches/1.x $REPO/project/tags/1.1
/repo/
project/
trunk/
branches/
1.x/
tags/
1.0/
1.1/
If the bug also exists in trunk, then you need to port your bugfix to
trunk. "svn merge" can help you there.
cd trunk-wc
svn merge -c$R $REPO/project/branches/1.x .
where $R is the revision in which you fixed the bug on the 1.x
branch. Now you test the fix in trunk and then commit it. Now the bug
is fixed in trunk too.