??xml version="1.0" encoding="utf-8" standalone="yes"?>
目录
一、基本概?/p>
1、什么是版本控制
2、什么是 Subversion
3、版本库(repository)
二、安?/p>
1、准备工?/p>
2、安?a title="服务? target="_blank" style="text-decoration: none; color: #000000; cursor: pointer; ">服务?/a>端和客户?/p>
3、徏立版本库(Repository)
4、运行独立服务器
三、基本配|?/p>
1、配|用户和权限
2、初始化导入
四、基本操作流E?/p>
1、取?check out)
2、存?check in)/提交(commit)
------------------------------------------------------------------??U?--------------------------------------------------------------
一、基本概?/strong>
1、什么是版本控制
单点来说Q版本控制就是数据仓库,它可以记录你Ҏ件的每次更改。这Pq你在昏天黑地的改了几个月后老板说不要了Q还是按照过去那P你也不会抓狂Q简单的恢复版本操作搞定一切?/p>
2、什么是 Subversion
Subversion是一个自?开源版本控制系l,它管理文件和目录可以越旉。一l文件存攑֜中心版本库,q个版本库很像一个普通的文g服务器,只是它可以记录每一ơ文件和目录的修改,q便使你可以取得数据以前的版本,从而可以检查所作的更改。从q个斚w看,许多人把版本控制pȝ当作一U?#8220;旉机器”?/p>
Subversion可以通过|络讉K它的版本库,从而用户可以在不同的电脑上用。一定程度上可以_允许用户在各自的地方修改同一份数据是促进协作。进展可能非常的q速,q没有一个所有的改变都会取得效果的通道Q由于所有的工作都有历史版本Q你不必担心׃失去某个通道而媄响质量,如果存在不正的改变Q只要取消改变?/p>
一些版本控制系l也?a title="软g" target="_blank" style="text-decoration: none; color: #000000; cursor: pointer; ">软g
配置理(SCM)pȝQ这U系l经q特定的_y设计来管理源代码Q有许多关于软g开发的Ҏ?#8212;本n理解~程语言、或者提供构建程序的工具。然而,Subversion不是q样一个系l,它是一个通用pȝQ可以管理Q何类型的文g集,对你q可能是源代码,对别人,可能是一个货物报价单或者是书稿Q或者是电媄剪辑{?/p>3、版本库(repository)
Subversion 的核心就?repository Q中文翻译成“版本?#8221;。就是位于服务器端,l一理和储存数据的地方?/p>
二、安?/strong>
Subversion的设计包括一个抽象的|络层,q意味着版本库可以通过各种服务?/a>q程讉K。理ZԌSubversion可以使用无限数量的网l协议实玎ͼ目前实践中存在着两种服务?/a>?/p> • SVNServerQsvnserve 是一个小?也叫d?、独立服务器Q用自己定义的协议和客L?作者注Q以下称q种服务器ؓ“svnserver服务?#8221;? • ApacheSVNQApache是最行的web服务器,通过使用 mod_dav_svn 模块QApache可以讉K版本库,q且可以使客L使用HTTP的扩展协议WebDAV/DeltaVq行讉K?作者注Q以下称q种服务器ؓ“ApacheSVN服务?#8221;? 下面介绍 SVNServer 服务器的安装QApacheSVN 服务器的安装使用L我写的《Subversion高应用QSVN的多U认证方式》?/p> 环境 OSQWindows XP SP2 WebQApache 2.2.6 SVNQsvn-win32-1.4.6 1、准备工作?/p> (1)获取 Subversion 服务器程序?/p> 到官方网?http://subversion.tigris.org/)下蝲最新的服务器安装程序。目前最新的?.4.6版本Q具体下载地址在:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100&expandFolder=8100&folderID=91 Q注意找 for apache 2.2.x 版本的?/p> (2)获取 TortoiseSVN 客户端程序?/p> 从官方网?http://tortoisesvn.net/downloads 获取最新的 TortoiseSVN 。TortoiseSVN 是一个客LE序Q用来与 subvers 服务器端通讯。Subversion 自带一个客LE序 svn.exe ,?TortoiseSVN 更好操作Q提高效率?/p> 2、安装服务器端和客户?/p> 首先安装 Apache 2.2.6 Q具体安装方法大家参考相兌料,或者参看我写的《Windows下安装Apache 2.2.x》?/p> 其次安装 Subversion(以下USVN)的服务器端和客户端。下载下来的服务器端是个 zip 压羃包,直接解压~即可,比如我解压到 E:\subversion 。客L安装文g是个 exe 可执行文Ӟ直接q行按提C安装即可,客户端安装完成后提示重启?/p> 3、徏立版本库(Repository) q行Subversion服务器需要首先要建立一个版本库(Repository)。版本库可以看作是服务器上集中存攑֒理数据的地斏V?/p> 开始徏立版本库。首先徏?e:\svn I文件夹作ؓ所有版本库的根目录。然后,q入命o行ƈ切换到subversion的bin目录。输入如下命令: 此命令在 E:\svn 下徏立一个版本库 repos1 。repos1 下面会自动生成一些文件夹和文件?/p> 我们也可以?TortoiseSVN 囑Ş化的完成q一步: 先徏立空目录 E:\svn\repos1 Q注意一定是要空的。然后在 repos1 文g夹上“右键->TortoiseSVN->Create Repository here...”Q然后可以选择版本库模式,q里使用默认的FSFS卛_Q然后就创徏了一pd文g夹和文gQ同命o行徏立的一栗?/p> 4、运行独立服务器 此时 subversion 服务q没有开始,只是通过它的命o建立了版本库。l在刚才的命令窗口输入: svnserve 会在端?3690 {待hQ?-daemon(两个短横U?选项告诉 svnserve 以守护进E方式运行,q样在手动终止之前不会退出。注意不要关闭命令行H口Q关闭窗口会?svnserve 停止?/p> Z验证svnserve正常工作Q用TortoiseSVN -> Repo-browser 来查看版本库。在弹出?URL 对话框中输入Q?nbsp; ?OK 按钮后就可以看见 repos1 版本库的目录树结构了Q只不过q时 repos1 是个I库?/p> 你也可以使用--root选项讄根位|来限制服务器的讉K目录Q从而增?a title="安全" target="_blank" style="text-decoration: none; color: #000000; cursor: pointer; ">安全
以前面的试作ؓ例,svnserve 会q行为:
然后TortoiseSVN中的版本库浏览器URL~减为:
三、基本配|?/strong>
SVNServer服务?/a>安装完成后,必须l过基本配置才能使用?/p> 1、配|用户和权限 用文本编辑器打开E:\svn\repos1\conf目录Q修改svnserve.confQ?/p> : 改ؓQ?nbsp; 卛_掉前面的 # 注释W,注意前面不能有空根{?/p> 然后修改同目录的passwd文gQ增加一个帐P : 增加帐号Q?/p> 2、初始化导入 下面是我们的数据(目)导入到这个版本库Q以后就q本库理我们的数据。我们的M改动都会被版本库记录下来Q甚x们自׃失、改错数据时版本库也能帮我们扑֛数据?/p> 比如Q我?d:\wwwroot 下有?guestbook 文g夹,里面存放的是我编写的留言程序。在此文件夹?#8220;右键 -> TortoiseSVN -> Import...” Q在弹出对话框的“URL of repository”输入“svn://localhost/repos1/guestbook”。在“Import message”输入“导入整个留言?#8221;作ؓ注释?/p> ?OK 后要求输入帐受我们在用户名和密码处都输入 test 。完成后 guestbook 中的内容全部导入C svn://localhost/svn/repos1/guestbook ?/p> 我们看到?e:\svn\repos1 没有M变化Q连?guestbook 文g多w没有建立Q唯一的变化就是e:\svn\repos1定w变大了。实际上我们源guestbook中的内容已经导入 repos1 版本库了Q源 guestbook 文g夹可以删除了?/p> 需要注意的是,q一步操作可以完全在另一台安装了 TortoiseSVN 的客h上进行。例如运行svnserve的主机的IP?33.96.121.22Q则URL部分输入的内容就?#8220;svn://133.96.121.22” ?/p> 四、基本操作流E?/strong> 1、取?check out) 取出版本库到一个工作拷贝: 来到LI目录下Q比如在f分区建立一个空文g?f:\work ?#8220;右键 -> SVN Checkout”。在“URL of repository”中输?#8220;svn://localhost/svn/repos1/guestbook”Q这h们就得到了一?guestbook 中内容的工作拯?/p> 2、存?check in)/提交(commit) 在工作拷贝中作出修改q提交: ?guestbook 工作拯中随便打开一个文Ӟ作出修改Q然?#8220;右键 -> SVN Commit... ”。这h们就把修Ҏ交到了版本库Q版本库Ҏ情况存储我们提交的数据?/p> 在修改过的文件上“右键 -> TortoiseSVN -> Show Log” Q可以看到对q个文g所有的提交。在不同?revision 条目?#8220;右键 -> Compare with working copy”Q我们可以比较工作拷贝的文g和所?revision 版本的区别?/p>
# harry = harryssecret
# sally = sallyssecret
#harry = harryssecret
#sally = sallyssecret
test = test
cd existing_git_repo
git remote add origin git@github.com:your_account/your_project.git
git push -u origin master
上面的代码将本地的仓库连接到q程仓库Qƈ且将代码提交到master分支上?/span>
====================================================================
W四步:提交代码
新徏的文ӞXCode会提CZ个A标签Q表C是added的?/span>
~辑的文ӞXCode会提CZ个M标签Q表C是Modified的?/span>
选中要更新的文gQ右?->Source Control-->Commit Selected Files 通过此操作将变更提交到本地的仓库中?/span>
选中要更新的文gQFile菜单-->Source Control-->Push 本地变化存储到q程服务器中?/span>
fromQ?span style="text-decoration: underline;">http://qiufangzhou.blog.163.com/blog/static/506421802011924102515390/
在Linux下,常用 grep列出Q文件内容)含有某个字符串的文g?br /> find命o查找匚wl定Q文件名Q的文g?br />grep用法Q?nbsp;grep [options] PATTERN [FILE]
例子Q?br /> grep "main" * -R//查找当前目录下的所有文件、目录中包含“main”字样的文?br />find用法Q?nbsp;find [-H] [-L] [-P] [path] [expression]
例子Q?br /> find /work/driver/net -name "*fb*"//查找/work/drivers/net目录下名字中包含fb的文?/span>
压羃解压~常用的两种方式Qgzip、bzip2
一般而言Q?#8220;.gz”?#8220;z”l尾的文件是gzip方式压羃的;
“.bz2”l尾的文件是以bzip2方式q行压羃的;
后缀中有tar字样时表C是一个文件包Q?br />tar?个常用选项:1.c 创徏Q用来生成文件包2.x 提取Q从文g包中提取文g3.z 使用gzip方式q行处理Q压~、解压羃Q?/blockquote>4.j 使用bzip2方式q行处理Q压~、解压羃Q?/blockquote>5.f 表示文gQ后面接着一个文件名
]]>