232013
 

最近做的一个项目用的就是fossil,这是一个DVCS(分布式版本控制系统),与Git有点像,但不像Git发布共享时需要借助于Github,fossil连同BUG跟踪和Wiki都一起管理,整合到库里了。而且非常小巧,无论是哪个系统(Linux, Windows, MacOS)下使用,都只有一个绿色的可执行文件。

Fossil的下载安装

Linux里:
sudo apt-get install fossil
Windows里:
下载单独的可执行文件,把它放到c:/windows/system32文件夹下
或者
下载独立的可执行文件然后把它入到$PATH里。
下载地址:http://www.fossil-scm.org/download.html

Fossil基本操作

创建respository
$ fossil init myresp1

$ fossil new myresp1
// fossil使用SQLite 来保存数据,创建respository后会生成一个SQLite文件,它就是版本库,只有一个文件
// 默认创建的库的管理员是当前用户 ,tags是trunk

打开respository

$ fossil open myresp1
// myresp1是版本库文件的路径,命令执行完成之后,会在当前目录下生成一个_FOSSIL_ 文件,这也是一个SQLite文件,用来记录本地的版本信息

克隆一个respository

$ fossil clone myresp1 myresp2
// 因为fossil是一个分布式的版本控制软件,因此可以把库克隆一个在本地,这样便可以本地自己管理一个库,然后需要的时候可以再跟其它人的库进行同步,从而实现分布式管理
// fossil open 与 fossil clone不同的是,前者是打开一个库,以后更新提交等操作都是针对打开的库myresp1,而后者是克隆一个库到本地,以后所进行的操作不依赖myresp1,而是myresp2
// 因为fossil的版本库只是一个单独的文件,所以也可以直接copy这个文件而不使用clone,但是这个文件中还包含一些像密码、EMAIL地址等敏感信息,可以通过使用fossil scrub命令来清除这些信息

关闭一个与respository的连接

$ fossil close
// fossil不会在每个文件夹下都建立像subversion那样的.svn文件夹,关闭后整个项目非常干净
新建一个文件,添加到版本库中,然后提交
$ fossil add hello
$ fossil commit -m 注释
然后别人可以更新
$ fossil update

从版本库中删除某个文件

$ fossil delete delfile

与别人的版本库同步

// 从远程库向本地库同步信息
$ fossil pull http://127.0.0.1:8083 -R mylocalresp
// 向远程库提交本地库信息
$ fossil push http://127.0.0.1:8083 -R mylocalresp
// 本地库与远程库同步
$ fossil sync http://127.0.0.1:8083 -R mylocalresp
起一个UI来浏览和管理
$ fossil ui -P 8083 myresp1
或者
$ fossil server myresp1
// 第一条命令只会绑定本地127.0.0.1地址,而且执行完之后会自动打开浏览器页面 ,但别人无法访问,而第二条命令绑定所有地址
// fossil 若不指定端口号,默认为8080端口

fossil 的分支和标签

Fossil 的分支和标签是一个概念,分支就是一个拥有branch标签的版本
新建一个分支
$ fossil branch new mybranch 23d5
// mybranch是分支的名字,后面的数字参数是基于某个版本
检出分支
$ fossil open ../myRepo mybranch
// 检出后,可以使用fossil status命令查看当前所在分支
将当前分支与某一版本合并
$ fossil merge 23d5
// 23d5就是某分支下的某个版本号,合并完之后可以在WEB页面的TIMELINE里查看合并结果

 

转载至:http://www.ijser.cn/?p=802