Svn常用命令
- 安装Subversion (SVN)
sudo apt install subversion
- 从版本库检出代码
svn checkout <repository-url> [local-directory]
- 更新本地代码
svn update [path]
svn up [-r <version>]
- 添加本地修改
svn add <path>
- 删除文件(本地)
svn delete <path>
- 提交本地修改/删除到版本库
svn commit -m "<message>" [path]
- 撤销本地修改
svn revert [--recursive path]
svn revert [-R path]
- 解决代码冲突
svn resolve --accept <choice> [path]
- 查看本地修改/删除
svn status
svn st [path]
- 对比本地修改
svn diff [path]
svn diff [-r version:version]
- 查看提交记录
svn log [path]
- 查看本地或版本库的详细信息。
svn info [path]
- 切换账号&密码
svn up --username <username> --password <pass> # 临时
删除~/.subversion/auth/的所有文件,下一次操作svn时按提示重新输入账号&密码 # 永久
Svn项目迁移Git1
- 添加git账号
- 添加账号
git config --global <--add> user.name "name"
git config --global <--add> user.email "email"
# 或者直接修改配置文件
vim ~/.gitconfig
- 配置密钥(可以共用)
ssh-keygen -t rsa -f id_rsa # 如果不共用,分别创建
# gitee
cat >> ~/.ssh/config <<EOF
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
EOF
# gitlab
cat >> ~/.ssh/config <<EOF
Host 192.168.xxx.xxx
HostName 192.168.xxx.xxx
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port xxx
EOF
# github
cat >> ~/.ssh/config <<EOF
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port xxx
EOF
- 测试连接
ssh -t git@gitee.com
ssh -T git@github.com
ssh -t git@gitlab域名
- 迁移svn项目
- 安装git-svn
sudo apt install git-svn
- 制作用户名映射文件
svn log --xml --quiet | grep author | sort -u | perl -pe 's/.*>(.*?)<.*/$1 = /' > userinfo.txt
# 编辑userinfo.txt,在'='后添加git用户名
# userinfo.txt格式
# (svn) user_name = (git) user_name <user_email>
- git svn clone迁移
git svn clone <SVN仓库URL> --authors-file=userinfo.txt --no-metadata <目标Git路径>
# 查看是否成功
cd <目标Git路径> && git log
- 推送远程仓库
git remote add origin <git_url> # 如果已经创建远程仓库,无需执行
git push origin <branch>
github未实际测试 ↩︎