Accurev AccuRev 开发流程

laofo · 2010年03月12日 · 39 次阅读

本文是根据 AccuRev 培训资料编译而成,目的是让大家更好了解 AccuRev,翻译如有不确处,请见谅。 Understanding AccuRev Concepts(理解 AccuRev 概念) Understanding the Developer Role(理解开发者角色) Workspaces(工作空间) 4 basic workspaces command(四个基本的工作空间命令) Exploring the role further…(浏览角色更多的内容) Reverting unwanted changes(回复不需要的改变) Element history(元件历史纪录) Adding files to source control(增加文件到源控制) TimeSafe Technology means:(时间安全机制技术意味着:) Every operation is stored as a recorded transaction with a corresponding date and time(每一个操作都会被存储下来,有事务纪录和相应的日期和时间) There is no way to delete any transaction in the repository; the history is always fully preserved.(在这个存储区内无法进行删除这样的事务,历史纪录被完好的保护.) Benefits(好处:) Absolute reproducibility of the code base.(代码基础的完全恢复能力。) Consistent namespace over time even if you delete, rename, or move an element.(m 即使你删除、重命名或者移动元件,仍能够保持命名空间一致性。) AccuRev uses atomic transactions-you perform an operation on a set of elements at one time.(AccuRev 使用原子事务 - 一次只能操作一个数据集的元素) Transactions are “all or nothing” and cannot be interrupted in progress(事务是 “全部或者没有被操作”,在处理过程中不能够被中断.) If,for some reason,a transaction does not complete,it is treated as if it never started.(如果,由于某些原因,一些事务不能够完成,它会被当作从未开始一样处理.) Benefits:(好处) Element versions with interdependencies are delivered together.(元件版本直接是相互独立的、一起交付。) Data integrity is preserved.(数据完全是被保护的.) No more broken builds!!(没什么能够破坏你的结构!) Basic objects in AccuRev(AccuRev 的基本对象) Depot:version controlled storage for a directory tree(files and directories)(数据仓库:版本控制存储和目录树(文件和目录)) Anything you want versioned live in the depot(你可以在数据仓库中有版本实时控制任何内容) Text files(文本文件) Binary files(二进制文件) Directories(目录) Any collection of code that is shared among projects is stored in a singe depot.(所有的代码集所有分享工程是存储在一个单独的数据仓库中。) Stream:A particular configuration of the code base(流,一个特殊的代码库的设置) Dynamic streams(动态流:) Can change over time as elements are added,removed,or changed.(能够在元素被增加、移动或改变时实时改变。) Inherit changes from streams in their backing chain.(继承前面链条流的改变。) The base stream is the highest node in the stream hierarchy-it has the same name as depot.(基流是流层次结构中最高的节点 - 和 depot 的名字一样.) Snapshots:(快照) Static streams that cannot be changed—they are frozen in time.(静态的流不可以被改变 - 他们被冻结了.) Analogous to labels.(类似于标签.) Streams are organized into a stream hierachy(流被组织成流层次结构) Dynamic stream, snapshots, and workspaces are all part of the hierarchy.(动态流、快照、和工作空间都是层次结构的一部分。) This allows for staging and separation in the development process.(允许分段和独立开发的过程。) Changes to the code base flow right-to-left by promote operations.(通过改进操作从右到左改变代码基础流) Changes flow left-to-right through dynamic streams by inheritance.(通过动态流继承从左到右改变流) The stream browser gives you a graphical view of the stream hierarchy. (流浏览器提供了流结构的图形化视图) The stream hierarchy can be changed dynamically from within the stream browser.(流层次结构可以在流浏览器中动态改变.)

Workspace:a developer’s private area(sandbox)(工作空间:一个开发者的私有区域 (沙箱)) Contains two components:(包含两个部分:) Workspace stream-dynamic stream that tracks the versions of files in the workspace.(工作空间流—跟踪在工作空间的版本文件的动态流) Workspace directory tree-set of writable file that exist on a client machine(工作空间目录树—存在于客户机上的可写文件) All changes are private(until you share them)(所有的改变都是私有的(直到你分享它们)) No chitter-chatter(没有喋喋不休的争论) Zero repeated RPC calls between the client and server(在客户机和服务器之间没有重复的远程调用) All workspaces are private(所有的工作空间都是私有的) Use a workspace to create new versions of the source(使用工作空间来创建新的版本源) Ensures that another user cannot remove someone else’s workspace(确保其它使用者不能够移除别人的工作空间) Added security(增加安全性) Based on a single Backing Stream(parent)(基于单独流) Workspaces are populated with the source from its Backing Stream(工作空间组装父流的源) These objects support advanced parallel development(这些对象支持高级平行开发) Built-in software configuration management best practices(软件配置管理的建立最佳实践) Private Workspaces(sandboxes)(私有工作空间(沙箱)) Merge conflicts resolved at the workspace level(在工作空间层合并解决方案冲突) Dynamic stream(动态流) Dynamic streams allow for any process model(动态流允许任何过程模型) Reliable Snapshots(可靠的快照) Snapshots are time-centric and transaction-base(快照是以时间为中心、以事务为基础的)

The AccuRev Development Model(AccuRev 开发模型) Keep(拘留) 1st stage of a checkin(private versioning)(签入的第一步(私有版本)) Checkpoint your work(你工作的检查站) Promote(改进) 2nd stage of a checkin(push changes up stream)(签入的第二步(将你的改变增加到流中)) Share changes with other workspaces(与其他工作空间分享改变) Update(更新) Pull(get) new changes into your workspace(将新的改变增加到你的工作空间) Merge(合并) Resolve conflict(解决冲突) Merge down into your workspace(合并你的工作空间) Checkpoint Your Work(Keep)(你工作的检查点(拘留)) AccuRev has a 2-stage checkin(AccuRev 有两步的签入) 1st stage of the checkin-keep(签入的第一步 - 拘留) 2nd stage of the checkin-promote(签入的第二步 - 改进) Keep-create a new version in your workspace(拘留 - 在你的工作空间中创建一个新的版本) Known as a ‘real’version(一个 ‘真正’ 的版本) Versions are ‘privately’ versioned on your workspace stream(版本是你工作空间流的私有版本) Kept Versions are ‘permanently’backed up on the server(拘留版本是永久返回到服务器上的) Other users working from the same basis stream will not automatically see your changes(其它使用者使用相同的基流将自动看到你的改变)

Sharing your changes(promote)(分享你的改变(改进)) AccuRev has a 2-stage checkin(AccuRev 有一个两步的签入) 1st stage of the checkin-keep(第一步签入 - 拘留) 2nd stage of the checkin-promote(第二步签入 - 改进) Promote –make the version active in your basis stream(改进 - 让你的版本在基流中激活) Like kept version(与拘留版本相似) History is fully preserved(历史纪录是完全保护的) You can revert to ‘any’ past version of a file(你可以转成任何过去版本的文件) The version is now available to other people working from the same stream.(这个版本对工作在相同基流上的其他人现在是可用的。)

Pulling in Shared Changes(update)(加入分享的改变(更新)) Use ‘update’to pull/get the latest changes(使用更新去增加最新的改变) ‘update’ will ‘not overwrite’any work in progress(更新不会重写任何正在进行中的工作) Kept files(拘留的文件) Modified files(改变的文件) Anchored files(固定的文件) ‘update’only applies to files that are ‘stale’(更新只对旧文件起作用) If ‘update’ encounters ‘modified’files…it will error(如果更新遇到改变的文件将会出错) You have one of three option(你有三选一的选择) Revert the modified files(转换改变的文件) Keep your modified files(private versioning)(拘留改变的文件(私有版本)) Anchor your modified files(update ignores anchored files)(固定改变的文件(更新忽略固定的文件) Merging(overlap status)(合并(叠加状态)) Sometimes,you will modify or keep a file that has also been changed in backing stream(有时,你会改变或者拘留一个你已经将改变放到父流当中的文件) Someone else has done a promote of the file before you(有人已经在你之前做了一个改进) Version in your wspace has an ‘older’ ancestor(在你工作空间版本中有一个旧的版本) The file’s status will include overlap and highlighted(文件的状态将会包含叠加并被高亮显示) A Merge is required before you can promote the file to the backing stream(将文件改进到基流之前需要一个合并) Merging Algorithm(合并算法) AccuRev’s merge algorithm for text files considers three versions(AccuRev 文本文件的合并算法有三个版本) contributor 1:backing stream version(贡献 1:父流版本) contrubutor 2:your version(贡献 2:你的版本) “common ancestor” version 普通父辈版本 Changes or Conflicts? (改变或冲突?) If a section of text was changed by just one contributor,the change is automatically accepted(如果一个选择文本被一个贡献改变了,改变自动接收) If both contributors changed the same section of text in different ways,there is a conflit,You have to resolve the conflict manually.(如果两个贡献用不同的方式改变相同的选择的文本,将有一个冲突,你必须手动解决这个冲突。) “Revert to…” (回复) Reverting a change from the gui(通过图形用户界面回复一个改变) Revert to Most Recent Version(回复一个最近的版本) This is the previous kept version(这是先前被拘留的版本) This version is one that has not yet been promoted(这个版本是还是没有被改进的) Still ‘active’ in your default group(仍在激活的默认组中) Revert to Backed Version(回复到父版本) Backed version in workspace before modifying file(在改变文件之前的工作空间的父版本) Not always the latest version on the backing stream(不总是父流中的最新版本) Replacing Missing Files(替换丢失的文件) ‘Populate’(gui)(迁移 (图形用户界面)) Recursive(from the current directory) will populate ‘all’missing files(递归(从当前目录)将会迁移所有的丢失文件) Overwrite(重写) default is to refuse to do anything if it would overwrite any file in the workspace(如果在工作空间上任何文件重写,默认是拒绝做任何改变) It retrieves the version that was loaded(or left alone) by the most recent update(重新找到最近更新中被下载(或被留下)的版本) Populate vs. Update (迁移 vs. 更新) Update(更新) Dose not ‘automatically’restore missing files(不自动存储丢失的文件) Update always gets the latest versions from the backing stream into your workspace(更新经常从工作空间的父流中得到最新版本) Populate(迁移) Always restores missing files(经常存储丢失的文件) Will not always get you the latest version(不会得到你最新的版本) The algorithm to populate is similar to ‘revert to backed’(purge) (迁移的算法和回复到从前版本相似) Gets the latest version of a missing file based on the last time the workspace stream was update(得到基于上次工作空间流更新时的丢失文件的最近版本) History of Changes(改变的历史记录) You can look at the history of…(你可以观察历史纪录) Element(元素) Transaction(事务) Workspace(工作空间) Stream(流) History can be range based(历史纪录可以平行) Transaction history allows for easy reverts(事务历史纪录提供简易回复) Adding Files to Version Control(增加文件到版本控制) The add command(增加命令) Creates a new element on the server(在服务器上建立一个新的元素) Creates the initial version of that element in the Workspace Stream(在工作空间流中创建一个元素的初始版本) 2-stage commit with add(增加的两步提交) Private in the workspace “only”(kept version)(只有在工作空间中私有(拘留版本)) Promote to share the files with other workspaces(和其他工作空间分享改进) Directories are also versioned(目录也是版本化的) Adding a new file implicitly creates directory elements as necessary(如果必要的话增加一个新的文件使暗中创建一格目录元素) Do not have to add the directory first(不需要先增加一个目录) Diff’ing Files(区分的文件) AccuRev allows diff’ing of any text file(AccuRev 允许区分文本文件) Binaries cannot be diff’d (nor can they be merged)(二进制文件不可以区分(不可以被合并)) Any two versions of a single file can be diff’d(任何连个版本的文件可以被区分) From the gui(从图形用户界面) Directory view(路径视图) Diff against the backed version(kept version and modified version)(区分先前版本和改变的版本) Version Browser(版本浏览器) Diff any 2 version(区分任何两个版本)


需要 登录 后方可回复。