This page is READ-ONLY. It is generated from the old site.
All timestamps are relative to 2013 (when this page is generated).
If you are looking for TeX support, please go to VietTUG.org

svnadmin snip

HOWTO add trunk, tags, branches to bad-style-svn-repo
Added by about 3 years ago

Vì lý do lịch sử, một số repo đã được tạo ra mà không có trunk, tags, branches, rất khó quản lý. Vì thế, cần chuyển đổi repo, sao cho toàn bộ nội dung cũ được lưu trong trunk của repo mới này.

$ svn list file:///home/svn/foobar.old
abc
xyz
$ svnadmin dump /home/svn/foobar.old > /path/to/foobar.dump
$ 0svnadd foobar.new
$ svn list file:///home/svn/foobar.new
trunk
branches
tags
$ svnadmin load --force-uuid --parent-dir trunk /home/svn/foobar.new < /path/to/foobar.dump

Việc sử dụng --force-uuid là cần thiết, vì nếu không sau này dùng svn sw để đổi đường dẫn tới repo trong thư mục làm việc sẽ bị báo lỗi.

Như vậy, ta có một repo mới, mà trong thư mục trunk của nó chứa đầy đủ thông tin của repo cũ. Bây giờ, có thể dùng svn sw để đổi thông tin về repo cho các phần đã check-out ra thư mục làm việc. Nếu cách này phát sinh vài vấn đề (ví dụ, tạo ra nhiều trạng thái S, ! hầu như không thể bỏ đi được), có thể sử dụng cách check-out từ repo mới tạo ra, và sau đó dùng rsync để đồng bộ

$ mkdir /path/to/working.dir.new
$ cd /path/to/working.dir.new
$ svn co file:///home/svn/foobar.new/trunk .
$ rsync -ravz /path/to/working.dir.old/ /path/to/working.dir.new/ --exclude="*.svn*" 

Đầu năm tự nhiên có bài viết vô duyên thế này đây ;)


Comments