AccuRev开发流程

AccuRev开发流程

 

本文是根据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 Technologymeans:(时间安全机制技术意味着:)

Every operation is stored as a recorded transaction with acorresponding date andtime(每一个操作都会被存储下来,有事务纪录和相应的日期和时间)

There is no way to delete any transaction in the repository; thehistory is always fullypreserved.(在这个存储区内无法进行删除这样的事务,历史纪录被完好的保护.)

Benefits(好处:)

    Absolute reproducibility of the codebase.(代码基础的完全恢复能力。)

   Consistent namespaceover time even if you delete, rename, or move anelement.(m即使你删除、重命名或者移动元件,仍能够保持命名空间一致性。)

AccuRev uses atomic transactions-you perform an operation ona set of elements at one time.(AccuRev使用原子事务-一次只能操作一个数据集的元素)

   Transactions are “all or nothing” and cannot be interrupted inprogress(事务是“全部或者没有被操作”,在处理过程中不能够被中断.)

    If,forsome reason,a transaction does not complete,it is treated as if itneverstarted.(如果,由于某些原因,一些事务不能够完成,它会被当作从未开始一样处理.)

Benefits:(好处)

    Elementversions with interdependencies are deliveredtogether.(元件版本直接是相互独立的、一起交付。)

    Dataintegrity is preserved.(数据完全是被保护的.)

    No morebroken builds!!(没什么能够破坏你的结构!)

Basic objects in AccuRev(AccuRev 的基本对象)

Depot:version controlled storage for a directorytree(files anddirectories)(数据仓库:版本控制存储和目录树(文件和目录))

    Anythingyou want versioned live in thedepot(你可以在数据仓库中有版本实时控制任何内容)

    Textfiles(文本文件)

    Binaryfiles(二进制文件)

   Directories(目录)

Any collection of code that is shared among projects is storedin a singedepot.(所有的代码集所有分享工程是存储在一个单独的数据仓库中。)

Stream:A particular configuration of the codebase(流,一个特殊的代码库的设置)

Dynamic streams(动态流:)

Can change over time as elements are added,removed,orchanged.(能够在元素被增加、移动或改变时实时改变。)

Inherit changes from streams in their backingchain.(继承前面链条流的改变。)

The base stream is the highest node in the stream hierarchy-ithas the same name asdepot.(基流是流层次结构中最高的节点-和depot的名字一样.)

Snapshots:(快照)

     Static streams that cannot be changed—they arefrozen in time.(静态的流不可以被改变-他们被冻结了.)

    Analogous to labels.(类似于标签.)

Streams are organized into a streamhierachy(流被组织成流层次结构)

    Dynamicstream, snapshots, and workspaces are all part of thehierarchy.(动态流、快照、和工作空间都是层次结构的一部分。)

   This allows for staging andseparation in the developmentprocess.(允许分段和独立开发的过程。)

   Changes to the code baseflow right-to-left by promoteoperations.(通过改进操作从右到左改变代码基础流)

    Changesflow left-to-right through dynamic streams byinheritance.(通过动态流继承从左到右改变流)

    Thestream browser gives you a graphical view of the streamhierarchy.

   (流浏览器提供了流结构的图形化视图)

The stream hierarchy can be changed dynamically from within thestream browser.(流层次结构可以在流浏览器中动态改变.)

 

Workspace:a developer’s privatearea(sandbox)(工作空间:一个开发者的私有区域(沙箱))

Contains two components:(包含两个部分:)

    Workspacestream-dynamic stream that tracks the versions of files in theworkspace.(工作空间流—跟踪在工作空间的版本文件的动态流)

    Workspacedirectory tree-set of writable file that exist on a clientmachine(工作空间目录树—存在于客户机上的可写文件)

    Allchanges are private(until you sharethem)(所有的改变都是私有的(直到你分享它们))

    Nochitter-chatter(没有喋喋不休的争论)

       Zero repeated RPC calls between the client andserver(在客户机和服务器之间没有重复的远程调用)

All workspaces are private(所有的工作空间都是私有的)

    Use aworkspace to create new versions of thesource(使用工作空间来创建新的版本源)

    Ensuresthat another user cannot remove someone else’sworkspace(确保其它使用者不能够移除别人的工作空间)

    Addedsecurity(增加安全性)

Based on a single Backing Stream(parent)(基于单独流)

   Workspaces are populated with the source from its BackingStream(工作空间组装父流的源)

These objects support advanced paralleldevelopment(这些对象支持高级平行开发)

  Built-in software configuration managementbest practices(软件配置管理的建立最佳实践)

       Private Workspaces(sandboxes)(私有工作空间(沙箱))

       Merge conflicts resolved at the workspacelevel(在工作空间层合并解决方案冲突)

   Dynamic stream(动态流)

       Dynamic streams allow for any processmodel(动态流允许任何过程模型)

   ReliableSnapshots(可靠的快照)

       Snapshots are time-centric andtransaction-base(快照是以时间为中心、以事务为基础的)

 

 

 

The AccuRev Development Model(AccuRev开发模型)

Keep(拘留)

       1st stage of a checkin(privateversioning)(签入的第一步(私有版本))

       Checkpoint your work(你工作的检查站)

Promote(改进)

       2nd stage of a checkin(push changes upstream)(签入的第二步(将你的改变增加到流中))

       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 yourworkspace(拘留-在你的工作空间中创建一个新的版本)

       Known as a ‘real’version(一个‘真正’的版本)

       Versions are ‘privately’ versioned on your workspacestream(版本是你工作空间流的私有版本)

       Kept Versions are ‘permanently’backed up on theserver(拘留版本是永久返回到服务器上的)

       Other users working from the same basis stream will notautomatically see yourchanges(其它使用者使用相同的基流将自动看到你的改变)

 

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 basisstream(改进-让你的版本在基流中激活)

Like kept version(与拘留版本相似)

History is fully preserved(历史纪录是完全保护的)

You can revert to ‘any’ past version of afile(你可以转成任何过去版本的文件)

The version is now available to other people working from thesamestream.(这个版本对工作在相同基流上的其他人现在是可用的。)

 

Pulling in SharedChanges(update)(加入分享的改变(更新))

Use ‘update’to pull/get the latestchanges(使用更新去增加最新的改变)

‘update’ will ‘not overwrite’any work inprogress(更新不会重写任何正在进行中的工作)

    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(privateversioning)(拘留改变的文件(私有版本))

    Anchor your modified files(update ignores anchoredfiles)(固定改变的文件(更新忽略固定的文件)

 

Merging(overlap status)(合并(叠加状态))

Sometimes,you will modify or keep a file that has also beenchanged in backingstream(有时,你会改变或者拘留一个你已经将改变放到父流当中的文件)

    Someone else has done a promote of the file beforeyou(有人已经在你之前做了一个改进)

Version in your wspace has an ‘older’ancestor(在你工作空间版本中有一个旧的版本)

The file’s status will include overlap andhighlighted(文件的状态将会包含叠加并被高亮显示)

A Merge is required before you can promote the file to thebacking stream(将文件改进到基流之前需要一个合并)

Merging Algorithm (合并算法)

AccuRev’s merge algorithm for text files considers threeversions(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,thechange is automaticallyaccepted(如果一个选择文本被一个贡献改变了,改变自动接收)

If both contributors changed the same section of text indifferent ways,there is a conflit,You have to resolve the conflictmanually.(如果两个贡献用不同的方式改变相同的选择的文本,将有一个冲突,你必须手动解决这个冲突。)

“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 beenpromoted(这个版本是还是没有被改进的)

    Still ‘active’ in your default group(仍在激活的默认组中)

Revert to Backed Version(回复到父版本)

    Backed version in workspace before modifyingfile(在改变文件之前的工作空间的父版本)

    Not always the latest version on the backingstream(不总是父流中的最新版本)

Replacing Missing Files(替换丢失的文件)

‘Populate’(gui)(迁移(图形用户界面))

  Recursive(from the current directory)willpopulate ‘all’missingfiles(递归(从当前目录)将会迁移所有的丢失文件)

Overwrite(重写)
    default is to refuse to do anything if it would overwrite any filein theworkspace(如果在工作空间上任何文件重写,默认是拒绝做任何改变)

    It retrieves the version that was loaded(or left alone)by the mostrecent update(重新找到最近更新中被下载(或被留下)的版本)

Populate vs. Update (迁移 vs. 更新)

Update(更新)

    Dose not ‘automatically’restore missingfiles(不自动存储丢失的文件)

    Update always gets the latest versions from the backing stream intoyour workspace(更新经常从工作空间的父流中得到最新版本)

Populate(迁移)

Always restores missing files(经常存储丢失的文件)

Will not always get you the latestversion(不会得到你最新的版本)

    The algorithm to populate is similar to ‘revert tobacked’(purge)

    (迁移的算法和回复到从前版本相似)

    Gets the latest version of a missing file based on the last timethe workspace stream wasupdate(得到基于上次工作空间流更新时的丢失文件的最近版本)

History of Changes(改变的历史记录)

You can look at the history of…(你可以观察历史纪录)

    Element(元素)

    Transaction(事务)

    Workspace(工作空间)

    Stream(流)

History can be range based(历史纪录可以平行)

Transaction history allows for easyreverts(事务历史纪录提供简易回复)

Adding Files to Version Control(增加文件到版本控制)

The add command(增加命令)

Creates a new element on theserver(在服务器上建立一个新的元素)

Creates the initial version of that element in the WorkspaceStream(在工作空间流中创建一个元素的初始版本)

2-stage commit with add(增加的两步提交)

Private in the workspace “only”(keptversion)(只有在工作空间中私有(拘留版本))

Promote to share the files with otherworkspaces(和其他工作空间分享改进)

Directories are also versioned(目录也是版本化的)

    Adding a new file implicitly creates directory elements asnecessary(如果必要的话增加一个新的文件使暗中创建一格目录元素)

    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 bemerged)(二进制文件不可以区分(不可以被合并))

Any two versions of a single file can be diff’d(任何连个版本的文件可以被区分)

From the gui(从图形用户界面)

    Directory view(路径视图)

    Diff against the backed version(kept version and modifiedversion)(区分先前版本和改变的版本)

    Version Browser(版本浏览器)

    Diff any 2 version(区分任何两个版本)


你可能感兴趣的:(AccuRev开发流程)