• TortoiseSVN


    你是否正在参与团队合作项目?

    你是否遇到过这样的情况:当你正在修改一个文件,却出现另一个人作了同样的事情。你是否曾因为这种巧合而导致了你的修改付之东流?

    你是否曾经在文件保存之后,又想恢复到文件保存之前?你是否想过要去查看一个文件几天前的内容?

    当你发现一个项目中的bug,你是否想知道它是何时出现在你的代码中?

    如果你对上面任何一个问题回答“Yes”,那么TortoiseSVN就是你所需要的!你得仔细阅读TortoiseSVN的说明,学会如何解决上面的问题。这并不难~

    这份说明是写给那些希望使用Subversion去管理他们的资料,却又不习惯于命令行的操作的人。因为TortoiseSVN就像是一个windows的扩展外壳,用户可以像使用“我的电脑”那样使用这个软件。

    TortoiseSVN是自由软件,你不需要花钱就可以使用它,并且可以随意使用。它的开发遵循GPL协议。


    以上是从TortoiseSVN的帮助文档摘录出来的。简单的说,TortoiseSVN可以看作一个代码版本控制工具,方便多人合作编写代码。现在有不少开源的作品是使用SVN作为源码管理工具的,学会了TortoiseSVN就可以很方便的拿到这些代码。

    TortoiseSVN功能丰富,但是我们只需要学会2个简单的操作即可,第一就是下载代码,第二是上传。下面针对各个功能作出说明。

    Export...下载

    因为开源的项目大都是可以直接下载的,而上传可能还需要开通某些权限,所以先说代码的下载。

    1、下载TortoiseSVN的安装版本并安装。你不会看到任何可执行的程序,因为TortoiseSVN是嵌在windows里面的。
    2、新建一个空的文件夹,右键点击它,可以看到TortoiseSVN菜单以及上面的SVN Checkout。
    3、不用管这个Checkout,我们选择TortoiseSVN菜单下的Export...,接着它会让你输入url。
    4、比如输入【迷宫探宝】的SVN地址是:http://game-rts-framework.googlecode.com/svn/trunk/
    5、其他选项不需要更改,Omit externals不要勾选,HEAD Revision选中表示最新的代码版本,接着点击OK即可将代码导出到这个目录中:)

    就像解压缩一样,不是么?你还可以尝试从这里下载TortoiseSVN的源码:
    http://tortoisesvn.tigris.org/svn/tortoisesvn/
    这里可能需要登录,用户名是guest,密码留空即可。

    Checkout...检出

    Checkout的意思签出,虽然和Export的效果一样是把代码从服务器下载到本地,但是Checkout有验证的功能,Checkout到某处的代码,将会被TortoiseSVN监视,里面的文件可以享受各种SVN的服务。

    选择那个Checkout的话,就表示这个目录将与这个SVN地址关联,这里的修改可以提交到SVN服务器。由于这表示将参与代码的编写,往往需要开通权限才可以。

    可以到http://code.google.com/hosting/,选择create new project,获得一个由google提供的SVN空间,上传你的代码。我就不在这里详细讲申请过程了,填一个简单的表格就可以。

    现在,我假设你已经得到某个SVN的账户和密码,譬如我们的RTG项目:
    https://game-rts-framework.googlecode.com/svn/trunk/
    注意前面是https://,多了一个s表示security,意思需要校验。
    假设用户名是guest,密码是abc(这个用户名和密码可以由项目管理者分配给你)

    1、在某目录上右键单击SVN Checkout...出现链接输入。填入上放的url,其他选项依旧不要更改,和Export类似。
    2、在要求输入用户名和密码的时候填写正确的内容,接着会出现代码下载画面。
    3、全部文件checkout之后,目录上会有一个绿色的勾,表示代码在最近一次update只好未被修改。

    这时,目录中的文件都会有绿色的勾,如果你修改了他们,就会出现红色的惊叹号表示这个文件已经被修改。这个目录中所有带勾的文件目前都在Tortoise的监视之下了,可以尝试右键单击文件,你会发现可以执行很多操作。接下来我会挑选一些比较常用的来讲解。

    Commit...提交修改

    假如你更新了目录中的文件,那么就可以用到commit功能。这个功能就是将你本地的文件修改记录上传到服务器上面,可以理解为上传。

    但是commit的功能不仅仅是上传,他会和服务器上面的文件进行对比,假如你更新了某个文件而服务器上面也有人更新了这个文件,并且是在你 checkout之后做的更新,那么它会尝试将你的更新和他人的更新进行融合(merge),假如自动merge不成功,那么报告conflict,你必 须自己来手动merge,也就是把你的更新和别人的更新无冲突的写在一起。

    commit的时候,最好填写Log信息,这样保证别人可以看到你的更新究竟做了写什么。这就相当于上传文件并且说明自己做了那些修改,多人合作的时候log非常重要。

    TortoiseSVN 的commit只会上传原先checkout然后又被修改了的文件,假如你新加入了某些文件,需要右键点击文件选择Add,然后文件上面会出现一个加号, 在下次commit的时候它就会被upload并且被标记为绿色对勾。没有绿色对勾的文件不会被commit。

    假如你需要给带有绿色对勾文件改名或者移动它的位置,请不要使用windows的功能,右键点击它们,TortoiseSVN都有相应的操作。想象这些文件已经不在是你本地的东西,你的一举一动都必须让Tortoise知道。

    假如修改了某个文件但是你后悔了,可以右键点击它选择Revert,它将变回上次checkout时候的情况。或者Revert整个工程到任意一个从前的版本。

    Update
    假如是多人合作的项目,自己不做修改的话别人也要修改,这时候就需要使用update来同步本地和服务器上的代码。同样是右键选择update,所有的更改就会从服务器端传到你的硬盘。注意,假如别人删除了某个文件,那么更新之后你在本地的也会被删除。

    如果本地的代码已经被修改,和commit一样会先进行merge,不成功的话就会报告conflict。

    锁定……
    假如有的文件不想让别人修改,还可以进行Lock操作。选择工作副本中你想要获取锁定的文件,然后选择命令 TortoiseSVN ---> Get lock… 出现一个对话框,允许你输入注释,这样别人知道你为什么锁定这个文件。注释是可选的,并且只用于基于 Subversion 的库。选择需要锁定的文件在复选框打勾,点击“确定”按钮锁定选择的文件。

    选择工作副本中你想要取消锁定的文件,然后选择命令 TortoiseSVN ---> Release lock…

     

    查看所有log:show log

     

    现实版本更新图示的Revision graph

     

    Check for modifications:同服务器上的项目版本进行比较,并可做相应的修改。

     

    查看服务器端目录结构的Repo-browser

     

    Revert:取消上一次的操作(只针对客户端,服务端不做改动)

     

    创建tag操作,相当于把当前的代码版本复制一份到其他地方,然后以这个地方为出发点进行新的开发,与原来位置的版本互不干扰。

    小技巧                                                                                                               

    工作副本下.svn 目录被删除了怎么办?


    工作拷贝中的任何一个目录包括一个名为.svn 管理区域,通常列表操作不显示这个目录,但它仍然是一个非常重要的目录,无论你做什么?不要删除或是更改这个管理区域的任何东西,Subversion 使用它来管理工作拷贝。 如果你不小心删除了子目录.svn,最简单的解决办法是删除包含的目录(普通的文件系统删除,而不是 svn delete),然后在父目录运行 svn update,Subversion 客户端会重新下载你删除的目录,并包含新的.svn。

  • 相关阅读:
    多年收集的一些稀有软件1
    Object-C中使用NSKeyedArchiver归档(将各种类型的对象存储到文件中)
    转-- iOS 30多个iOS常用动画,带详细注释
    转-ios设备唯一标识获取策略
    微信授权
    Windows服务Demo
    查询某个时间段在另一个时间段里面的时间
    微服务官方文档链接
    c# html 转word
    Unreal4 入门(配置)
  • 原文地址:https://www.cnblogs.com/feisky/p/1593441.html
Copyright © 2020-2023  润新知