- 浏览: 841803 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
renzhengzhi:
请教一下楼主,公有云和私有云的开发,具体要做哪些工作呢?我拿到 ...
4,云的4 种模式 -
SangBillLee:
我用了solr5.5,用SolrQuery查询,没法高亮,不知 ...
solr5.x快速入门 -
lw900925:
这翻译读起来真是别扭。
solr in action翻译-第一章1.1 -
springjpa_springmvc:
spring mvc demo教程源代码下载,地址:http: ...
Spring MVC性能提升 -
h416373073:
正遇到了此问题不知如何解决, 多谢分享
solr错误
你已经阅读过了关于工作副本的内容,现在我们要讲一讲客户端怎样建立和使用它。
一个 Subversion 工作副本是你本地机器一个普通的目录,保存着一些文件,你可以任意的编辑文件,而且如果是源代码文件,你可以像平常一样编译,你的工作副本是你的私有工作区,在你明确的做了特定操作之前,Subversion 不会把你的修改与其他人的合并,也不会把你的修改展示给别人。
After you've made some changes to the files in your working copy and verified that they work properly, Subversion provides you with commands to publish your changes to the other people working with you on your project (by writing to the repository). If other people publish their own changes, Subversion provides you with commands to merge those changes into your working directory (by reading from the repository).
一个工作副本也包括一些由 Subversion 创建并维护的额外文件,用来协助执行这些命令。通常情况下,你的工作副本每一个文件夹有一个以 .svn
为名的文件夹,也被叫做工作副本管理目录,这个目录里的文件能够帮助 Subversion 识别哪一个文件做过修改,哪一个文件相对于别人的工作已经过期了。
一个典型的 Subversion 的版本库经常包含许多项目的文件(或者说源代码),通常每一个项目都是版本库的子目录,在这种安排下,一个用户的工作副本往往对应版本库的的一个子目录。
举一个例子,你的版本库包含两个软件项目。
换句话说,版本库的根目录包含两个子目录: paint
和 calc
。
To get a working copy, you must check out some subtree of the repository. (The term check out may sound like it has something to do with locking or reserving resources, but it doesn't; it simply creates a private copy of the project for you).
假定你修改了 button.c
,因为 .svn
目录记录着文件的修改日期和原始内容,Subversion 可以告诉你已经修改了文件,然而,在你明确告诉它之前,Subversion 不会将你的改变公开。将改变公开的操作被叫做提交(或者是检入),它提交修改到版本库中。
发布你的修改给别人,可以使用 Subversion 的提交命令。
这时你对 button.c
的修改已经提交到了版本库,如果其他人取出了 /calc
的一个工作副本,他们会看到这个文件最新的版本。
设你有个合作者,Sally,她和你同时取出了 /calc
的一个工作副本,你提交了你对 button.c
的修改,Sally 的工作副本并没有改变,Subversion 只在用户要求的时候才改变工作副本。
要使项目最新,Sally 可以要求 Subversion 更新她的工作副本,通过使用更新命令,可以将你和所有其他人在她上次更新之后的修改合并到她的工作副本。
注意,Sally 不必指定要更新的文件,Subversion 利用 .svn
以及版本库的进一步信息决定哪些文件需要更新。
Subversion 可以通过多种方式访问-本地磁盘访问,或各种各样不同的网络协议,但一个版本库地址永远都是一个 URL,URL 方案反映了访问方法。
表 2.1. 版本库访问 URL
file:// |
直接版本库访问(本地磁盘或者网络磁盘)。 |
http:// |
通过 WebDAV 协议访问支持 Subversion 的 Apache 服务器。 |
https:// |
与 http:// 相似,但是用 SSL 加密。 |
svn:// |
通过未认证的 TCP/IP 自定义协议访问 svnserve 服务器。 |
svn+ssh:// |
通过认证并加密的 TCP/IP 自定义协议访问 svnserve 服务器。 |
For the most part, Subversion's URLs use the standard syntax, allowing for server names and port numbers to be specified as part of the URL. The file://
access method is normally used for local access, although it can be used with UNC paths to a networked host. The URL therefore takes the form file://hostname/path/to/repos
. For the local machine, the hostname
portion of the URL is required to be either absent or localhost
. For this reason, local paths normally appear with three slashes, file:///path/to/repos
.
Also, users of the file://
scheme on Windows platforms will need to use an unofficially “standard” syntax for accessing repositories that are on the same machine, but on a different drive than the client's current working drive. Either of the two following URL path syntaxes will work where X
is the drive on which the repository resides:
file:///X:/path/to/repos ... file:///X|/path/to/repos ...
注意 URL 使用普通的斜杠,而不是 Windows 本地(非 URL)形式的路径。
你可以安全的访问网络共享的 FSFS 版本库,但是你不能以这种方式访问 BDB 版本库。
警告
不要创建和访问网络共享上的 Berkeley DB 版本库,它不能存在于一个远程的文件系统,即使是映射到盘符的共享。如果你希望在网络共享使用 Berkeley DB,结果难以预料-你可能会立刻看到奇怪的错误,也有可能几个月之后才发现数据库已经损坏了。
svn commit 操作可以作为一个原子事务操作发布任意数量文件和目录的修改。在你的工作副本中,你可以改变文件内容,创建、删除、改名和复制文件和目录,然后作为一个整体提交。
在版本库中,每次提交被当作一次原子事务操作: 要么所有的改变发生,要么都不发生,Subversion 努力保持原子性以应对程序错误、系统错误、网络问题和其他用户行为。
每当版本库接受了一个提交,文件系统进入了一个新的状态,叫做版本,每个版本被赋予一个独一无二的自然数,一个比一个大,初始修订号是 0,只创建了一个空目录,没有任何内容。
可以形象的把版本库看作一系列树,想象有一组版本号,从 0 开始,从左到右,每一个修订号有一个目录树挂在它下面,每一个树好像是一次提交后的版本库“快照”。
全局版本号
不像其它版本控制系统,Subversion 的版本号是针对整个目录树的,而不是单个文件。每一个版本号代表了一次提交后版本库整个目录树的特定状态,另一种理解是版本 N 代表版本库已经经过了 N 次提交。当 Subversion 用户讨论“foo.c
的版本 5”时,他们的实际意思是“在版本 5 时的foo.c
”。需要注意的是,一个文件的版本 N 和 M 并不表示它必定不同。
需要特别注意的是,工作副本并不一定对应版本库中的单一版本,他们可能包含多个版本的文件。举个例子,你从版本库检出一个工作副本,最新的版本是 4:
calc/Makefile:4 integer.c:4 button.c:4
此刻,工作目录与版本库的版本 4 完全对应,然而,你修改了 button.c
并且提交之后,假设没有别的提交出现,你的提交会在版本库建立版本 5,你的工作副本会是这个样子的:
calc/Makefile:4 integer.c:4 button.c:5
假设此刻,Sally 提交了对 integer.c
的修改,建立修订版本 6,如果你使用 svn update 来更新你的工作副本,你会看到:
calc/Makefile:6 integer.c:6 button.c:6
Sally 对 integer.c
的改变会出现在你的工作副本,你对 button.c
的改变还在,在这个例子里,Makefile
在 4、5、6 版本都是一样的,但是 Subversion 会把 Makefile
的版本设为 6 来表明它是最新的,所以你在工作副本顶级目录作一次干净的更新,会使所有内容对应版本库的同一修订版本。
对于工作副本的每一个文件,Subversion 在管理目录 .svn/
记录两项关键的信息:
-
工作文件的基准版本(叫做文件的工作版本)和
-
一个本地副本最后更新的时间戳。
给定这些信息,通过与版本库通讯,Subversion 可以告诉我们工作文件是处与如下四种状态的那一种:
文件在工作目录里没有修改,在工作版本之后没有修改提交到版本库。svn commit 操作不做任何事情,svn update 不做任何事情。
工作副本已经修改,从基准版本之后没有修改提交到版本库。本地修改没有提交,因此 commit 会成功的提交,update 不做任何事情。
这个文件在工作副本没有修改,但在版本库中已经修改了。这个文件应当更新到最新公共版本。commit 不做任何事情,update 将会更新工作副本到最新的版本。
The file has been changed both in the working directory, and in the repository. A commit of the file will fail with an out-of-date error. The file should be updated first; an update command will attempt to merge the public changes with the local changes. If Subversion can't complete the merge in a plausible way automatically, it leaves it to the user to resolve the conflict.
发表评论
-
svn: No repository found in 'svn:..解决方案
2013-12-06 09:42 1188svn服务未启动或者是启动的时候未指定svn仓库路径 使用 ... -
外部条目
2010-08-30 21:13 117有时候,构建一个需要不同检出的工作目录是很有用的。举例来说,你 ... -
项目设置
2010-08-30 21:12 119有时你可能想得到关于一个文件/目录的更多 ... -
清理f
2010-08-30 21:10 138也许由于服务器问题,一个Subversion指令不能成功地完成 ... -
撤消更改
2010-08-30 21:10 131如果你想要撤消一个文件自上次更新后的所有的变更,你需要选择该文 ... -
删除、移动和改名
2010-08-30 21:09 199不像 CVS,Subversion 允许重命名和移动文件和目录 ... -
忽略文件和目录
2010-08-30 21:08 185在多数项目中你 ... -
复制/移动/重命名文件和文件夹
2010-08-30 21:07 199经常发生其它项目需要使用某个项目文件的情况,你只想简单的复制它 ... -
添加新文件和目录
2010-08-30 21:06 139如果在你的开发过程中你创建了新的文件或目录,那么你需 ... -
查看差异
2010-08-30 21:05 178在项目开发中,有一个 ... -
版本日志对话框
2010-08-30 21:03 152对于每次进行修改和提交,你应该有针对性地留下日志信息。这样,你 ... -
修改列表
2010-08-30 20:58 94理想情况下,你任何时候都只做一件事,你的工作副本只包含一个逻辑 ... -
本地与远程状态
2010-08-30 20:57 101. 检查修改 通常知道你修改了哪些文件以及哪 ... -
获得状态信息
2010-08-30 20:56 138获得状态信息 ... -
解决冲突
2010-08-30 20:51 105偶尔,当你从版本库更新、合并文件时,或者切换工作副本至一个不同 ... -
用来自别人的修改更新你的工作副本
2010-08-30 20:49 101已经完成更新的进度对话框 Periodically ... -
将你的修改提交到版本库
2010-08-30 20:48 144将你的修改提交到 ... -
检出工作副本
2010-08-30 20:45 162为了得到一个工作副本,需要进行从版本库检出的操作。 在Win ... -
导入数据到版本库
2010-08-30 20:44 133导入 如果你要将数据导入到已经 ... -
日常使用指南
2010-08-30 20:42 116为了获得比每日用户指南更多的信息: 你应该已经安 ...
相关推荐
7 3 SubVersion实战 ............................................................................................................................... 18 4 SubVersion高级操作 .........................
#### 五、Subversion实战操作 - **初始化仓库**:使用`svnadmin create`命令创建一个新的版本库。 - **导入项目**:将现有的项目文件导入到版本库中。 - **版本号与日期**:每个提交都会有一个唯一的版本号和对应的...
2.3. Subversion实战 2.3.1. 工作拷贝 2.3.2. 修订版本 2.3.3. 工作拷贝怎样追踪版本库 2.4. 摘要 3. 配置服务器 3.1. 以Apache为基础的服务器 3.1.1. 简介 3.1.2. 安装Apache 3.1.3. 安装Subversion 3.1.4. 配置 ...
Subversion实战 工作拷贝 修订版本 工作拷贝怎样追踪版本库 修订版本混合的限制 摘要 3. 指导教程 帮助! 导入 修订版本: 号码、关键字和日期,噢,我的! 修订版本号 修订版本关键字 修订版本日期 初始化的Checkout...
Subversion实战 工作拷贝 修订版本 工作拷贝怎样追踪版本库 修订版本混合的限制 摘要 3. 指导教程 帮助! 导入 修订版本: 号码、关键字和日期,噢,我的! 修订版本号 修订版本关键字 修订版本日期 初始化的Checkout...
3. **Subversion 实战应用:** - **仓库 URL:** 指定仓库的位置,用于与仓库交互。 - **工作副本 (Working Copies):** 用户本地的文件夹,从仓库中检出,用于日常开发。 - **版本 (Revisions):** 仓库中的每一...
- **Subversion实战**: - **工作副本(Working Copy)**:本地的副本,用于进行开发和修改。 - **版本库URL**:指向版本库的网络地址。 - **修订版本(Revision)**:每次提交都会产生一个修订版本号,用于标识...
- 掌握Subversion实战中的工作副本、版本库URL、修订版本等核心概念。 - 掌握如何配置服务器,包括基于Apache的服务器和基于svnserve的服务器的安装、运行以及相关配置。 3. 版本库操作 - 学习如何创建版本库,...
- **Subversion实战**:工作拷贝是用户本地的工作空间,每个工作拷贝都有自己的修订版本,能追踪版本库的最新变化。 **3. 配置服务器** - **Apache基础服务器**:提供HTTP/HTTPS协议访问,支持多版本库、路径授权和...
- **Subversion实战:** - 工作副本(Working Copy):本地副本,供用户修改。 - 修订版本(Revision):每次提交都会产生一个新的修订版本号。 #### 四、服务器配置 - **基于Apache的服务器:** - **简介:**...
2.3 Subversion实战 Subversion在实际操作中涉及到工作副本的概念,这指的是从版本库中检出的一份文件的副本。在本地对副本进行修改后,可以将这些修改提交回版本库。 2.4 摘要 TortoiseSVN的功能涵盖了从版本库的...
##### 2.3 Subversion实战 - **2.3.1 工作副本**:本地计算机上的一个副本,用户在此进行开发工作。 - **2.3.2 版本库的URL**:指向版本库的地址,用于检出和提交。 - **2.3.3 修订版本**:每个文件或目录都有唯一...
**2.3 Subversion实战** - **工作副本**:用户本地计算机上的一个副本,用于实际的开发工作。 - **版本库的URL**:指定版本库的位置。 - **修订版本**:每次对版本库的更改都会生成一个新的修订版本号。 - **工作...
- **Subversion实战**:涵盖工作副本、版本库URL、修订版本及副本跟踪机制。 #### 四、版本库操作 - **创建版本库**:可通过命令行或TortoiseSVN图形界面实现。 - **版本库布局**:定义版本库内部结构,便于管理和...