Tag Archives: svn

SVN How to revert a bad commit

Ever made that commit that messed up your repository and spent some time wondering how to undo, or revert a bad commit? In subversion you really can’t go back a revision, but you can merge your copy with the previous repository version and then commit the changes to correct your mistakes:

cd /home/huypv/domain

svn co [repository_url] phungvanhuy.net

svn log | more

svn merge -r [current_version]:[previous_version] [repository_url]

svn ci -m "Reverting previous commit and going back to revision [previous_version]."

This is a life saver.

Merging a Branch into Trunk

[protocol]://server/path/to/trunk
[protocol]://server/path/to/branches/b-v1
Có ứng dụng xxx, 1 nhánh được tách ra là b-v1

Check out trunk trên server về thư mục C:\source\xxx
Check out branches/b-v1 về thư mục C:\source\b-v1

Chuyển thư mục làm việc [C:\source\b-v1], gõ lệnh
svn log –stop-on-copy
# Nhìn thấy revision XXXX (là revision lúc branch được copy tách ra từ trunk)

Chuyển thư mục làm việc [C:\source\xxx], gõ lệnh
svn up
# Nhìn thấy: At revision YYYY

Để merge branch into trunk, dùng XXXX, YYYY ở trên gõ lệnh
svn merge -rXXXX:YYYY [protocol]://server/path/to/branches/b-v1
# Conflict chỗ nào thì tùy nghi mà di tản, chọn tc (their …) là dùng bên branch đè sang!, mc là giữ nguyên bên trunk – vứt bỏ branch.

Giờ thì commit lên trunk trên server
svn ci -m “MERGE branch b-v1 [XXXX]:[YYYY] into trunk”

Lại chiến với trunk thôi, bye bye branch.