svn 文件夹修改文件流程

1.新建文件夹

      2 .进入文件夹  右击 选择 checkout 登录svn 检出根目录

3.选择svn 下载地址  存储位置

 

​​​​​​​

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
[本地工作区] :work copy ,本地工作副本; [主项目]:引用共用模块的新项目(工程) 最新版本(HEAD revision):版本库里文件或目录的最新版本 SA :SVN服务器的管理员 PRA :单个项目库的管理员,或者是项目负责人 User :普通工作人员 WC :work copy ,本地工作副本 1. 版本控制原则 SVN(或者其他版本控制软件)只是一个版本控制的辅助工具,不可能把所有的问题都自动解决掉。尤其,对于冲突这个麻烦事儿,项目成员在项目进程中要尽量通过优化流程来解决,而不是将希望寄托于软件工具来自动解决一切问题。 建议的开发过程组织: 1. 随行就市 项目刚开始阶段,单独开发;项目稳定阶段,完整开发。项目开发初期,各个项目成员负责自己的文件夹(或者模块),与SVN服务器间的更新、提交等操作只需要针对自己负责的文件夹(或者模块)就行了,他人的文件夹(或者模块)可以不必关心;项目稳定阶段,也就是每天的变更量很小了,所有项目成员与SVN服务器的更新、提交等操作需要针对项目的所有文件夹(或者模块),各个项目成员在其本地编译时本地工作区的全部项目程序(或者资料)均为最新的版本,保证项目作为整体能够顺利运行。 2. 能躲就躲 尽量保证一份文件只有一个项目成员在编辑。举例说明:程序员A负责底层中文件 DBAccess.cs的编写,如果程序员B的工作要求他为DBAccess.cs增加两个方法,程序员B应该通知程序员A来增加而不是自己增加;如果此时A非常繁忙需要B自己增加,就需要B先更新本地的DBAccess.cs,然后开始修改修改完成后立即提交并通知A更新本地的文件,通过缩短提交间隔来减少冲突。
目 录 为什么需要使用配置管理软件 SVN相关的基本概念 TSVN的使用流程及图标说明 TSVN基本功能的介绍 常见问题 SVN培训教程全文共43页,当前为第1页。 使用配置管理的理由 及时了解团队中其他成员的进度。 轻松比较不同版本间的细微差别; 记录每个文件成长的每步细节,利于成果的复用(reuse); 资料共享,避免以往靠邮件发送文件造成的版本混乱; 人人为我,我为人人。所有成员维护的实际是同一个版本库,无需专人维护所有文件的最新版本; 协同工作,大大提高团队工作效率,无论团队成员分布在天涯还是海角; SVN培训教程全文共43页,当前为第2页。 SVN基本概念 配置库( Repository ) SVN的核心是配置库,储存所有的数据,配置库按照文件树形式储存数据-包括文件和目录,任意数量的客户端可以连接到配置库,读写这些文件。通过写数据,别人可以看到这些信息;通过读数据,可以看到别人的修改。 最特别的是 Subversion 会记录配置库中的每一次更改,不仅针对文件也包括目录本身,包括增加、删除和重新组织文件和目录。 SVN培训教程全文共43页,当前为第3页。 SVN基本概念 工作副本(WorkSpace) 与位于中央配置库相对应的是每个人的工作空间,它是每个程序员工作的地方,程序员从配置库拿到源代码,放在本地作为工作副本,在工作副本上进行查看、修改、编译、运行、测试等操作,并把新版本的代码从这里提交回配置库库中。 SVN培训教程全文共43页,当前为第4页。 SVN基本概念 配置库 工作副本 Checkout Commit SVN培训教程全文共43页,当前为第5页。 SVN的工作模式 复制-修改-合并方案(Subversion默认的模式) 在这种模型里,每一个客户读取项目配置库建立一个私有工作副本——版本库中文件和目录的本地映射。用户并行工作,修改各自的工作副本,最终,各个私有的复制合并在一起,成为最终的版本,这种系统通常可以辅助合并操作,但是最终要靠人工去确定正误。 锁定-修改-解锁方案 在这样的模型里,在一个时间段里配置库的一个文件只允许被一个人修改。 此模式不适合软件开发这种工作。 SVN培训教程全文共43页,当前为第6页。 TSVN的使用基本流程 SVN培训教程全文共43页,当前为第7页。 SVN使用图标说明 一个新检出的工作副本使用绿色的对勾表示Subversion状态 正常. 当我们开始编辑一个文件后,图标将变成红色感叹号。通过 这种方式,可以很容易地看出我们对哪些文件进行了修改操 作,但是还没有提交到版本库中; 如果在提交的过程中出现了冲突,图标将变成黄色感叹号。 如果我们拥有了一个文件的锁,并且Subversion状态是正常, 这个重载图标将提醒我们:如果不使用该文件的话,请进行 释放锁操作,允许其他成员提交对该文件修改SVN培训教程全文共43页,当前为第8页。 SVN使用图标说明 这个图标表示当前文件夹下的某些文件文件夹已经被计划从版本控制中删除,或是该文件夹下某个受控的文件丢失了。 加号告诉我们有一个文件或是目录已经被计划加入版本控制。 SVN培训教程全文共43页,当前为第9页。 CheckOut(检出) 作用:将版本库中的内容检出到本地工作副本 步骤: 1.新建一个空文件夹; 比如:E:\Proj_trunk 2.在此目录中点击右键-> SVN Checkout... SVN培训教程全文共43页,当前为第10页。 CheckOut的注意项 检出深度: 1.全递归(默认选择) 检出完整的目录树,包含所有的文件或子目录。 2.直接节点,包含目录 检出目录,包含其中的文件或子目录,但是不递归展开子目录。 3.仅文件子节点 检出指定目录,包含所有文件,但是不检出任何子目录。 4.仅此项。 只检出目录。不包含其中的文件或子目录。 省略外部引用:如果项目含有外部项目的引用,而这些引用我们不希望同时检出,请选中忽略外部项目复选框。如果选中了这个复选框,更新的时候要使用命令"更新至版本Update to Revision..." SVN培训教程全文共43页,当前为第11页。 Update(更新) 作用:更新工作副本使其成为版本库中的最新版本 SVN将显示出更新的文件和更新的次数 SVN培训教程全文共43页,当前为第12页。 Commit(提交) 对工作副本进行编辑后提交到SVN 在右键菜单中点击SVN Commit 提交前写好信息,点击确定 SVN培训教程全文共43页,当前为第13页。 ——权限控制 当进行提交文件操作的时候您将看到权限提示信息 输入您的用户名和密码 保存权限设置(见红圈) ,可以避免将来重复输入用户名和密码 SVN培训教程全文共43页,当前为第14页。 ——如何删除认证数据 步骤:点击右键
基本概念 2.1、什么是版本控制 简单点来说,版本控制就是数据仓库,它可以记录你对文件的每次更改。这样,就算你在昏天黑地的改了几个月后老板说不要了,还是按照过去那样,你也不会抓狂,简单的恢复版本操作就搞定一切。 2.2、什么是 Subversion Subversion是一个自由/开源版本控制系统,它管理文件和目录可以超越时间。一组文件存放在中心版本库,这个版本库很像一个普通的文件服务器,只是它可以记录每一次文件和目录的修改,这便使你可以取得数据以前的版本,从而可以检查所作的更改。从这个方面看,许多人把版本控制系统当作一种“时间机器”。 Subversion可以通过网络访问它的版本库,从而使用户可以在不同的电脑上使用。一定程度上可以说,允许用户在各自的地方修改同一份数据是促进协作。进展可能非常的迅速,并没有一个所有的改变都会取得效果的通道,由于所有的工作都有历史版本,你不必担心由于失去某个通道而影响质量,如果存在不正确的改变,只要取消改变。 一些版本控制系统也是软件配置管理(SCM)系统,这种系统经过特定的精巧设计来管理源代码,有许多关于软件开发的特性—本身理解编程语言、或者提供构建程序的工具。然而,Subversion不是这样一个系统,它是一个通用系统,可以管理任何类型的文件集,对你这可能是源代码,对别人,可能是一个货物报价单或者是书稿等。 2.3、版本库(repository) Subversion 的核心就是 repository ,中文翻译成“版本库”。就是位于服务器端,统一管理和储存数据的地方。 3、安装配置 3.1 安装独立服务器 SVNServer 环境 OS:Windows XP SP2 Web:Apache 2.2.6 SVNsvn-win32-1.4.6 一、准备工作 1、获取 Subversion 服务器程序 到官方网站(http://subversion.tigris.org/)下载最新的服务器安装程序。目前最新的是1.4.6版本,具体下载地址在:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100&expandFolder=8100&folderID=91 ,注意找 for apache 2.2.x 版本的。 2、获取 TortoiseSVN 客户端程序 从官方网站 http://tortoisesvn.net/downloads 获取最新的 TortoiseSVN 。TortoiseSVN 是一个客户端程序,用来与 subvers 服务器端通讯。Subversion 自带一个客户端程序 svn.exe ,但 TortoiseSVN 更好操作,提高效率。 二、安装服务器端和客户端 首先安装 Apache 2.2.6 ,具体安装方法大家参考相关资料,或者参看我写的《Windows下安装Apache 2.2.x》。 其次安装 Subversion(以下简称SVN)的服务器端和客户端。下载下来的服务器端是个 zip 压缩包,直接解压缩即可,比如我解压到 E:\subversion 。客户端安装文件是个 exe 可执行文件,直接运行按提示安装即可,客户端安装完成后提示重启。 三、建立版本库(Repository) 运行Subversion服务器需要首先要建立一个版本库(Repository)。版本库可以看作是服务器上集中存放和管理数据的地方。 开始建立版本库。首先建立 e:\svn文件夹作为所有版本库的根目录。然后,进入命令行并切换到subversion的bin目录。输入如下命令: svnadmin create E:\svn\repos1 此命令在 E:\svn 下建立一个版本库 repos1 。repos1 下面会自动生成一些文件夹文件。 我们也可以使用 TortoiseSVN 图形化的完成这一步: 先建立空目录 E:\svn\repos1 ,注意一定是要空的。然后在 repos1 文件夹上“右键->TortoiseSVN->Create Repository here...”,然后可以选择版本库模式,这里使用默认的FSFS即可,然后就创建了一系列文件夹文件,同命令行建立的一样。 四、运行独立服务器 此时 subversion 服务还没有开始,只是通过它的命令建立了版本库。继续在刚才的命令窗口输入: svnserve.exe --daemon svnserve 将会在端口 3690 等待请求,--daemon(两个短横线)选项告诉 svnserve 以守护进程方式运行,这样在手动终止之前不会退出。注意不要关闭命令行窗口,关闭窗口会把 svnserve 停止。 为了验证svnserve正常工作,使用TortoiseSVN -> Repo-browser 来查看版本库。在弹出的 URL 对话框中输入: svn://localhost/svn/repos1 点 OK 按钮后就可以看见 repos1 版本库的目录树结构了,只不过这时 repos1 是个空库。 你也可以使用--root选项设置根位置来限制服务器的访问目录,从而增加安全性和节约输入svnserve URL的时间: svnserve.exe --daemon --root drive:\path\to\repository 以前面的测试作为例,svnserve 将会运行为: svnserve.exe --daemon --root e:\svn 然后TortoiseSVN中的版本库浏览器URL缩减为: svn://localhost/repos1 五、配置用户和权限 用文本编辑器打开E:\svn\repos1\conf目录,修改svnserve.conf: 将: # password-db = passwd 改为: password-db = passwd 即去掉前面的 # 注释符,注意前面不能有空格。 然后修改同目录的passwd文件,增加一个帐号: 将: [users] # harry = harryssecret # sally = sallyssecret 增加帐号: [users] #harry = harryssecret #sally = sallyssecret test = test 六、初始化导入 下面就是将我们的数据(项目)导入到这个版本库,以后就由版本库管理我们的数据。我们的任何改动都回被版本库记录下来,甚至我们自己丢失、改错数据时版本库也能帮我们找回数据。 比如,我在 d:\wwwroot 下有个 guestbook 文件夹,里面存放的是我编写的留言簿程序。在此文件夹上“右键 -> TortoiseSVN -> Import...” ,在弹出对话框的“URL of repository”输入“svn://localhost/repos1/guestbook”。在“Import message”输入“导入整个留言簿”作为注释。 点 OK 后要求输入帐号。我们在用户名和密码处都输入 test 。完成后 guestbook 中的内容全部导入到了 svn://localhost/svn/repos1/guestbook 。 我们看到在 e:\svn\repos1 没有任何变化,连个 guestbook 文件夹都没有建立,唯一的变化就是e:\svn\repos1容量变大了。实际上我们源guestbook中的内容已经导入 repos1 版本库了,源 guestbook 文件夹可以删除了。 需要注意的是,这一步操作可以完全在另一台安装了 TortoiseSVN 的客户机上进行。例如运行svnserve的主机的IP是133.96.121.22,则URL部分输入的内容就是“svn://133.96.121.22” 。 七、基本操作流程 1、取出(check out) 取出版本库到一个工作拷贝: 来到任意空目录下,比如在f分区建立一个空文件夹 f:\work 。“右键 -> SVN Checkout”。在“URL of repository”中输入“svn://localhost/svn/repos1/guestbook”,这样我们就得到了一份 guestbook 中内容的工作拷贝。 2、存入(check in)/提交(commit) 在工作拷贝中作出修改并提交: 在 guestbook 工作拷贝中随便打开一个文件,作出修改,然后“右键 -> SVN Commit... ”。这样我们就把修改提交到了版本库,版本库根据情况存储我们提交的数据。 在修改过的文件上“右键 -> TortoiseSVN -> Show Log” ,可以看到对这个文件所有的提交。在不同的 revision 条目上“右键 -> Compare with working copy”,我们可以比较工作拷贝的文件和所选 revision 版本的区别。 3、导出(Export ) 我们想要给客户一个项目,当然不能带版本信息,我们可以用TortoiseSVN菜单里的Export来实现,新建一个文件夹,右击文件夹TortoiseSVN菜单里选择Export…
使用Subversion进行版本控制针对 Subversion 1.4(根据r2866编译) 参照网页版 http://svndoc.iusesvn.com/svnbook/1.4/制作而成。 目录 前言 序言 读者 怎样阅读本书 本书约定 排版习惯 图标 本书的结构 本书是免费的 致谢 来自 Ben Collins-Sussman 来自 Brian W. Fitzpatrick 来自 C. Michael Pilato Subversion是什么? Subversion的历史 Subversion的特性 Subversion的架构 Subversion的组件 1. 基本概念 版本库 版本模型 文件共享的问题 锁定-修改-解锁 方案 拷贝-修改-合并 方案 Subversion实践 Subversion版本库URL 工作拷贝 修订版本 工作拷贝怎样跟踪版本库 混合修订版本的工作拷贝 更新和提交是分开的 混合修订版本很常见 混合版本很有用 混合版本有限制 总结 2. 基本使用 求助! 导入数据到你的版本库 svn import 推荐的版本库布局 初始化检出 禁用密码缓存 用其它身份认证 基本的工作周期 更新你的工作拷贝 修改你的工作拷贝 检查你的修改 查看你的修改概况 检查你的本地修改的详情 取消本地修改 解决冲突(合并别人的修改) 手工合并冲突 复制文件到你的工作文件 脚注:使用svn revert 提交你的修改 检验历史 产生历史修改列表 检查历史修改的详情 比较本地修改 比较工作拷贝和版本库 比较版本库与版本库 浏览版本库 svn cat svn list 获得旧的版本库快照 有时你只需要清理 总结 3. 高级主题 版本清单 修订版本关键字 版本日期 属性 为什么需要属性? 操作属性 属性和 Subversion 工作流程 自动设置属性 文件移植性 文件内容类型 文件的可执行性 行结束字符串 忽略未版本控制的条目 关键字替换 锁定 创建锁定 发现锁定 解除和偷窃锁定 锁定交流 外部定义 Peg和实施修订版本 网络模型 请求和响应 客户端凭证缓存 4. 分支与合并 什么是分支? 使用分支 创建分支 在分支上工作 分支背后的关键概念 在分支间复制修改 复制特定的修改 合并背后的关键概念 合并的最佳实践 手工跟踪合并 预览合并 合并冲突 关注还是忽视祖先 合并和移动 常见用例 合并分支到另一分支 取消修改 找回删除的项目 常用分支模式 发布分支 特性分支 使用分支 标签 建立简单标签 建立复杂标签 分支维护 版本库布局 数据的生命周期 供方分支 常规的供方分支管理过程 svn_load_dirs.pl 总结 5. 版本库管理 Subversion 版本库的定义 版本库开发策略 规划你的版本库结构 决定在哪里与如何部署你的版本库 选择数据存储格式 Berkeley DB FSFS 创建和配置你的版本库 创建版本库 实现版本库钩子 Berkeley DB 配置 版本库维护 管理员的工具箱 svnadmin svnlook svndumpfilter svnsync Berkeley DB 工具 修正提交消息 管理磁盘空间 Subversion如何节约磁盘空间 删除终止的事务 删除不使用的Berkeley DB日志文件 Berkeley DB 恢复 版本库数据的移植 过滤版本库历史 版本库复制 版本库备份 总结 6. 服务配置 概述 选择一个服务器配置 svnserve服务器 svnserve使用SSH通道 Apache 的 HTTP 服务器 推荐 svnserve,一个自定义的服务器 调用服务器 svnserve作为守护进程 使用svnserve通过inetd 通过通道使用svnserve svnserve作为Windows服务 内置的认证和授权 创建一个用户文件和认证域 设置访问控制 SSH 隧道 SSH 配置技巧 初始设置 控制调用的命令 httpd,Apache的HTTP服务器 先决条件 基本的 Apache 配置 认证选项 基本HTTP认证 SSL 证书管理 授权选项 整体访问控制 每目录访问控制 禁用基于路径的检查 额外的糖果 版本库浏览 Apache 日志 其它特性 基于路径的授权 支持多种版本库访问方法 7. 定制你的Subversion体验 运行配置区 配置区布局 配置和Windows注册表 配置选项 服务器 配置 本地化 理解地区 Subversion对区域设置的支持 使用外置比较工具 外置 diff 外置 diff3 8. 嵌入Subversion 分层的库设计 版本库层 版本库访问层 客户端层 进入工作拷贝的管理区 条目文件 原始拷贝和属性文件 使用API Apache可移植运行库 URL 和路径需求 使用 C 和 C++ 以外的语言 代码样例 9. Subversion 完全参考 Subversion 命令行客户端:svn svn选项 svn子命令 svnadmin svnadmin选项 svnadmin子命令 svnlook svnlook选项 svnlook子命令 svnsync svnsync选项 svnsync子命令 svnserve svnserve选项 svnversion mod_dav_svn Subversion属性 版本控制的属性 未版本控制的属性 版本库钩子 A. Subversion 快速入门指南 安装 Subversion 快速指南 B. CVS用户的Subversion指南 版本号现在不同了 目录的版本 更多离线操作 区分状态和更新 状态 更新 分支和标签 元数据属性 解决冲突 二进制文件和行结束标记转换 版本化的模块 认证 迁移CVS版本库到Subversion C. WebDAV和自动版本 什么是WebDAV ? 自动版本化 客户端交互性 独立的 WebDAV 应用程序 Microsoft Office,Dreamweaver,Photoshop Cadaver,DAV 浏览器 文件浏览器 WebDAV 扩展 Microsoft Web 文件夹 Nautilus,Konqueror WebDAV文件系统实现 WebDrive,NetDrive Mac OS X Linux davfs2 D. 第三方工具 E. Copyright 索引 插图清单 1. Subversion的架构 1.1. 一个典型的客户/服务器系统 1.2. 需要避免的问题 1.3. 锁定-修改-解锁 方案 1.4. 拷贝-修改-合并 方案 1.5. 拷贝-修改-合并 方案(续) 1.6. 版本库的文件系统 1.7. 版本库 4.1. 分支与开发 4.2. 开始规划版本库 4.3. 版本库与复制 4.4. 一个文件的分支历史 8.1. 二维的文件和目录 8.2. 版本时间—第三维! 表格清单 1.1. 版本库访问URL 5.1. 版本库数据存储对照表 6.1. Subversion服务器选项比较 C.1. 常用WebDAV客户端 范例清单 5.1. txn-info.sh(报告异常事务) 5.2. 镜像版本库的 pre-revprop-change 钩子 5.3. 镜像版本库的 start-commit 钩子 6.1. 匿名访问的配置实例。 6.2. 一个认证访问的配置实例。 6.3. 一个混合认证/匿名访问的配置实例。 6.4. 禁用所有的路径检查 7.1. 注册表条目(.reg)样本文件。 7.2. diffwrap.sh 7.3. diffwrap.bat 7.4. diff3wrap.sh 7.5. diff3wrap.bat 8.1. 使用版本库层 8.2. 使用 Python 处理版本库层 8.3. 一个Python状态爬虫

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值