Home
AccuRev Concepts Manual
Contents
1. e Many development tasks are active concurrently all using the same source base AccuRev Concepts Manual 15 e Tasks are often interrelated they must share their changes with each other integration and weed out inconsistencies some tasks cannot be completed until one or more others have been completed e Most tasks are accomplished by making changes to relatively few files e A task is completed by delivering a set of changes to another task For example a development task might deliver its changes to an integration task or to a testing task e A developer s next task may involve changing a completely different set of files from the previous task AccuRev streams neatly model all these aspects of development tasks The relatively few files that a developer changes for a task become active in a particular stream Typically this occurs when the developer records new versions of the files using the keep command To complete the task or to mark an intermediate milestone the developer delivers the changes to the parent stream using the promote command The files become active in the parent stream and they revert to being inactive not under active development in the child stream no active development two files become active in child stream promote new versions to parent stream greeting java errmsg java signoff java greeting java errmsg java signoff java keep
2. greeting java errmsg java signoff java greeting java errmsg java signoff java greeting java errmsg java signoff java greeting java errmsg java signoff java promote AccuRev Concepts Manual 16 In a multiple level stream hierarchy several promotions are required to propagate a set of changes all the way to the top level Each promotion causes the file s to become active in the to stream and inactive in the from stream AccuRev terminology the set of elements files and directories that are currently active in a particular stream constitute the default group of that stream You may have gotten the impression that a given file can be active in only one stream at a time Not so that would mean only one development task at a time could be actively working on the file AccuRev allows each file to be active in any number of streams even all of the streams at once Typically though a file is active in just a few streams at any particular moment The diagram below uses contrasting colors to show how a particular file might be active in four different streams That is four different versions of the same file are in use at the same time for various development tasks Inheriting Versions From Higher Level Streams What about the other streams Each stream in the hierarchy contains some version of the file if a file is not active in a particular stream the stream a
3. real version amp virtual version AccuRev distinguishes between the original version created by a keep operation and all the additional versions created by a promote operation e real version is created by a keep or an add which places a new file in the depot The operation creates a new version object in the metadata stored for the depot and also places a new file in the depot s file storage area e A virtual version is created by a promote It creates a new version object in the metadata stored for the depot which provides an additional reference to an existing file in the file storage area Replication of the Repository The AccuRev repository can be replicated at multiple sites to support distributed development organizations It can also be replicated at a single site to provide better performance Each replica repository can store the data for a selected subset of the master repository s depots or for all the depots Replication is discussed in the AccuRev Administrator s Guide Archiving Data and Removing Data In a perfect world no one makes mistakes and there s an infinite amount of disk storage But in this world you sometimes save data by mistake and your repository sometimes outstrips your storage capacity In general AccuRev s TimeSafe principle its ability to reproduce previous configurations does not allow data to be removed from the repository once it has been placed there There s
4. streams too Using a Workspace As the name implies a workspace provides a location for performing development tasks editing source files compiling debugging testing creating web sites etc Since a workspace is a regular AccuRev Concepts Manual 21 directory tree in the file system there are no special issues involved with using software development tools with AccuRev data Just do it Here are a few points that show how easy it is to do day to day work in a workspace e A workspace need not be in any special file system location Any place where you have permission to store data will do e Ifyou decide you need more space you can move a workspace to another location And you don t have to worry about losing track of your workspaces AccuRev keeps track of every workspace s location e You can modify any file in a workspace at any time Some configuration management systems require you to perform a check out operation before working on a file and keep most files in a read only state but not AccuRev The thing that s special about a workspace is that it provides a two way portal to the AccuRev data repository you put your own changes into the repository and you draw out the changes that your colleagues have previously recorded there Putting Data Into the Repository A workspace enables you to create new versions of the files in a particular depot Each workspace is attached to a particular stream w
5. A named set of AccuRev users Each user can belong to multiple groups and groups can be nested head version The version of an element that along with a basis version specifies that element s entry in a change package Equivalently the head version basis version pair specifies a patch to that element header section AccuWork The section of a multiple page edit form that always remains visible as you switch from page to page History Browser The AccuRev GUI tool that displays the set of transactions that affect a particular data structure depot stream file etc immutable The permanence property of an AccuRev transaction the transaction cannot be deleted or modified in any way include rule User defined include rules and exclude rules specify which elements are to appear in a given stream or workspace Rules can apply to individual files or directories or to entire directory trees Rules for a stream are inherited by its subsidiary streams and workspaces but can be overridden at lower levels include exclude The facility of streams and workspaces that enables users to specify which elements are to appear See include rule AccuRev Concepts Manual 49 incomplete This term has the same meaning in a change package dependency situation as in the Stream Issues tab some but not all of an issue s change package entries are in the stream indicator See status indicator indirect See direc
6. Data Repository As a data management product AccuRev s foremost job is to provide a secure data repository for long term storage of your organization s development data AccuRev s implementation of the repository is straightforward and flexible and key product features make it easy to protect the repository from accidental or malicious damage AccuRev has a simple client server architecture A single program the AccuRev Server accurev_server is the only program that accesses the data repository This single point of entry to the repository makes it easy to enforce tight security at the operating system level The data repository is built around database technology that is both transaction based and append only This makes the repository extremely resistant to accidental damage Using atomic transactions means that the database won t become corrupted even if a power failure occurs while the database is being modified The append only feature enables live backup of the repository without having to interrupt developers work This means that backups can be made as often as desired even continually and the more recent the backup the less data is lost in the event of a catastrophic hardware failure Organization of the Repository An AccuRev data repository consists of e a database called accurev which contains e a site schema which contains the user registry list of depots list of workspaces and other
7. by reparenting the programmer s personal stream making it a child of the Project B stream instead of the Project A stream AccuRev Concepts Manual 18 Reparenting all four programmers personal streams from the Project A stream to the Project B stream requires four separate operations But suppose the programmers streams were all children of the same pass through stream moving the team to a different project requires just a single operation reparenting the pass through stream pass throug Project A i pena reparent Project B j The intermediate stream level doesn t impose any extra day to day work on the programmers The versions they promote automatically pass through the intermediate stream to the project stream The Include Exclude Facility AccuRev has an advanced include exclude facility which vastly increases the flexibility of a depot s stream hierarchy e You can configure any dynamic stream or workspace to include just some not all of the elements from its parent stream the subhierarchy below the stream inherits this configuration This facility makes it easy to logically partition a source tree so that different development projects can work on different parts of the source code and so that different development groups cannot even see each other s work e In any dynamic stream or workspace you can change the backing stream of individual elements or entire subtrees of elements In effect
8. has been designed and saved in a new version of file corp_logo png Promoting this version to a high level stream makes it appear instantly in many lower level streams where Web pages are being developed and updated It may be worthwhile to study the above scenarios a bit more and to consider how your organization might use AccuRev s streams and snapshots in your own development environment As you do so keep these two important points in mind e A stream is a software configuration a specification of particular versions of particular elements A stream doesn t contain copies of files stored in the depot s file storage area it just contains a matched set of versions selected from all the versions recorded in the metadata stored for the depot e A depot s files are organized into a directory tree a depot s streams are organized into a tree structured hierarchy These two tree structures are different and independent of each other In a sense the directory tree is a picture of a software application and the stream hierarchy is a picture of the software development process that creates and maintains the application How Changes Migrate Through the Stream Hierarchy AccuRev provides configuration management capabilities that are sophisticated and robust without sacrificing ease of use What s the secret One main reason is that AccuRev sees the development environment in the same way as a typical development team
9. in a particular workspace or stream Commonly multiple status indicators apply to an element storage file See container file stranded An element has stranded status in a workspace or stream if it s currently active but cannot be accessed through the file system This can occur in several situations AccuRev Concepts Manual 56 e There is no pathname to the element because the element s directory or a higher level directory was removed from the workspace or stream by the defunct command or an exclude rule e dynamic stream only There are one or more defunct elements at a given pathname along with one non defunct element The defunct element s have stranded status e The element s directory or a higher level directory is cross ink ed making another version appear at the pathname of the active version stream The AccuRev data structure that implements a configuration of the elements in a particular depot The configuration of a dynamic stream changes over time the configuration of a snapshot static stream never changes Each workspace has its own private workspace stream See workspace stream hierarchy stream path stream ID An integer that uniquely identifies a stream snapshot or workspace with its depot Changing the name of a stream or workspace does not affect its stream ID stream filter A list of streams which is used to define a subset of a depot s stream hierarchy that includes the s
10. just design your stream hierarchy differently You can redesign a project s workflow at any time by changing the stream hierarchy e A parent stream provides an integration point for any number of child streams This structure is appropriate for a development effort that is divided into multiple tasks to be undertaken concurrently by different developers As developers complete their changes they promote the changes to the parent integration stream If two or more developers happen to change the same file AccuRev makes sure promote amp that the changes are parent stream child streams merged together This ensures that one person s oOo work is not overwritten accidentally by another person s promote ae merge required if two streams want to promote versions of the same file AccuRev Concepts Manual 14 e Each stream provides a change scope for the subhierarchy beneath it child 1 streams grandchild i o streams etc Once a version has been promote promoted to a stream that version becomes available to the stream s entire subhierarchy In many cases the newly promoted e version will appear automatically in be inherited by all the descendant streams This auto integration mechanism complements the explicit integration of merging described in the preceding paragraph a 7 inherit inherit For example suppose a new corporate logo
11. not contain the change root stream base stream The top level stream in a depoi s stream hierarchy scan threshold The time at which a workspace s most recent search for modified files was initiated Such searches are performed by the update and files commands and by certain forms of the stat command In the GUI several of the File Browser searches include a search for a workspace s modified files See update level SCM Acronym for software configuration management search An operation that determines all the elements in a workspace or stream that have a particular Status serial development The practice of ensuring that multiple users do not work concurrently on the same file under version control See parallel development server See AccuRev Server session file A file in the accurev subdirectory of your home directory which establishes your user identity for a particular AccuRev Server sibling Two or more workspaces or streams that have the same parent stream Pass through streams don t count that is all workspaces that promote versions to the same stream are considered siblings even if some of them are direct children of the stream while others are children of an intervening pass through stream single column mode The mode of a table displayed by the AccuRev GUI in which the rows are sorted on the values in one of the table s columns See mu tiple columns mode AccuRev Concepts Man
12. own its The default workspace naming convention used by the mkws command is lt backing_stream_name gt _ lt principal_name gt workspace stream The private stream that is built into a workspace All new versions of elements are originally created in workspaces AccuRev records these versions in workspace streams workspace tree The ordinary directory tree located in the user s disk storage in which the user performs development tasks and executes AccuRev commands AccuRev Concepts Manual 61 AccuRev Concepts Manual 62
13. promote command propagates the version from the workspace s built in stream to the backing stream This command operates totally within the the metadata stored for the depot No data file is copied to the file storage area during a promote Why the extra stream and the extra step Isn t it redundant No because the workspace stream and backing stream play different roles The whole idea of the workspace is to provide a degree of isolation from the changes that others are making concurrently The workspace stream makes the isolation more flexible It enables you to keep any number of intermediate versions of a file in AccuRev Concepts Manual 24 your workspace before going public by promote ing the most recent version If you decide that you ve headed off in the wrong direction you can revert a file to any of those intermediate versions and promote that version instead No one else needs to know You can even purge all the work you ve done on a file reverting the workspace to using the version in the backing stream All the intermediate versions that you keep are stored permanently in the depot even the versions you never promote to the public stream hierarchy Thus the keep command provides a data backup capability save a copy of this file just in case I ever want to restore it to its current state It also means you can change your mind as many times as you like about which version of a file should be shared with the re
14. scene and introduce some necessary terminology AccuRev s basic job is to keep track of the changes that a development team makes to a set of files That s called version control A file under version control is called an element developers can create any number of versions of each element AccuRev saves all the versions permanently in a depot Note we re oversimplifying here AccuRev version controls directories as well as files and there can be multiple depots each one storing a separate directory tree But the above paragraph is enough to get us into a discussion of software configurations For more on depots and version controlled files and directories see section 7he AccuRev Data Repository on page 3 AccuRev can manage any number of configurations of a depot s elements Each configuration contains one version of every element in the depot or perhaps just some of the elements Here are the basic data structures e A stream is a configuration of the depot that changes over time e A snapshot is a configuration of the depot that never changes e A depot s streams and snapshots are organized into a stream hierarchy each stream or snapshot has one parent and can have any number of children The stream hierarchy can be changed at any time move a child to a different parent interpose a new stream between a child and its parent etc Using these structures it s easy and intuitive to mo
15. that the two series of changes can be viewed a single uninterrupted series starting at version B and ending with version X That is B H H X B X Accordingly AccuRev updates the change package entry automatically keeping B as the Basis Version and changing the Version from H to X e Case 2 B H J X where H is an ancestor of J change package gap This case typically arises when you do work on a task at two different times and someone else has worked on the same element in between AccuRev Concepts Manual 37 original changes B H new changes J X version B version H version J version X In this example a colleague updated her workspace to bring in your original changes created versions 9 and 10 in her workspace and promoted her changes You then updated your workspace to bring in her changes and made a new set of changes When AccuRev tries to combine the change B H and the change J X into a single change package entry it detects that version H and version J are not the same but that H is a direct ancestor of J Thus there is a simple gap in the potential combined change package entry in this example consisting of your colleague s versions 9 and 10 Probably your colleague was not working on the same task when she made her changes If she had been she would have added her changes to the same change package as in Case 1 On the other hand it s probably OK t
16. this special kind of include exclude termed cross linking provides a way to make the stream hierarchy look different for different elements You can think of it as a way to draw dotted lines or detours in the stream hierarchy for individual elements or sets of elements See Getting Only the Files You Need the Include Exclude Facility on page 29 AccuRev Concepts Manual 19 AccuRev Concepts Manual 20 AccuRev Workspaces and Reference Trees As described in AccuRev Software Configurations The Stream Hierarchy on page 11 AccuRev uses streams to organize your development data as any number of projects are under way concurrently But streams are not the entire story e lt A stream is just a bookkeeping device though a very sophisticated one It s a mechanism that records which versions of files are in use for a particular development task But what about the actual files themselves which developers edit and build software systems with e The promote command propagates an existing version of a file from a lower level stream to a higher level stream But how are new versions of files created in the first place In other words how do users access AccuRevy controlled files in order to perform their day to day development tasks The answer through workspaces A workspace is an ordinary directory tree that instantiates a stream That is the workspace contains files that are copies of the versions in the strea
17. A file element has modified status in a workspace if the file s contents have changed since the last time the user kept a new version of the file or updated the entire workspace multiple columns mode The mode of a table displayed by the AccuRev GUI in which you can define a hierarchical sort order for the rows using the values in two or more of the table s columns See single column mode namespace change A change to the pathname of a file or directory e ement either renaming the element in place or moving the element to a different location in the depo s directory hierarchy AccuRev Concepts Manual 51 non conflicting change In a merge operation a change that occurs in just one contributor not both of them Such a change can be merged automatically without requiring a decision from the user optimization A heuristic algorithm that AccuRev uses to speed the performance of certain operations on users workspaces In the timestamp optimization AccuRev ignores files created modified before the workspace s most recent scan threshold In the pathname optimization AccuRev ignores files whose pathnames match a pattern specified in environment variable ACCUREV IGNORE ELEMS See search overlap Version X in a workspace or stream has overlap status if the parent stream s current version of the element contains changes that are not reflected in version X That is the parent stream s version is not an
18. AccuRev The TimeSafe Configuration Management System AccuRev Concepts Manual Version 5 0 June 2009 AccuRev Concepts Manual Copyright AccuRey Inc 1995 2009 ALL RIGHTS RESERVED TimeSafe and AccuRev are registered trademarks of AccuRev Inc AccuBridge AccuReplica AccuWork and StreamBrowser are trademarks of AccuRey Inc All other trade names trademarks and service marks used in this document are the property of their respective owners Table of Contents ACCURGEV Concepts wisccaicacconssesdendicaassceuscedciundecdncaeduasnonstncsiusseenadonauvedstwsdseuasonsdedsnenianensascdunekendaaccies 1 The AccuRev Data Repository csccessssssccscoseocesconosscsstececssesnecsescossecedanseannsceoaacedieneceascsecensdconscesetces 3 Organization of the Repository sicadaniwusencatinciwnda a aac eae 3 Single Depot vs Multiple Depots W Wu u u u ssesesesrrrerreererereeserren ener renen en ener seeren erne nerne 4 Inside a Depot Versions and Files iccsccsiccesiscascssanecasedsdnecanessnccandabscessnoeancctesnsadespss renen rese enes 4 Versiofis of Non File Objects oss ani seuntavansnnscsetninssniusdeassesaiaaadoaensanddancdenttoinsaseeinasensbess 6 Promotion Real Versions and Virtual Versions ccccccceeceeeeeeceesceceeceeeeeeeecseenseeseaes 6 Replication of th Repository ccsstaractaideceinieccact nee ticetidse E nario 7 Archiving Data and Removing Data sssssseseeeen sense renser rense sn renen renere re
19. a possible side effect of cross linking the element or a higher level directory dynamic stream A stream whose configuration changes over time with new versions promoted from child workspaces and or from other dynamic streams It also inherits versions from its parent stream edit by diff The Diff tool feature enables you to edit your workspace s version of an element while you re comparing it with another version edit form AccuWork A fill in the blanks form for displaying and changing the field values of isswe records EID See element ID element A file or directory that is under AccuRev version control See version AccuRev Concepts Manual 47 element ID The unique immutable integer identifier by which AccuRev tracks the changes to a particular file element or directory element An element s name or pathname can change but its element ID never changes element link element link element An element whose contents is a pointer to another element which must be in the same depot The target element can be a directory element a file element another element link or a symbolic link element type The kind of data stored in versions of a file e ement Different versions of the same element can have different element types exclude rule See include rule exclusive file locking An AccuRev feature that enforces serial development when a file becomes active in one workspace an exclusive file lock prev
20. ach user works on a copy of the file in his own workspace He can keep as many private intermediate versions as he wishes in his workspace stream e Merge Stage The merge stage begins when one of the developers promotes his private version of the file to the backing stream After that each other developer must merge the current version in the backing stream into his own work then promote this merged private version In the end all users changes are incorporated into the backing stream conflicting changes to the file if any are both detected and resolved If two developers work on a file concurrently a single merge and promote is required If N developers work on a file concurrently then N merge and promotes are required Serial Development through Exclusive File Locking Parallel development is flexible and powerful but it is not appropriate for every situation Some organizations don t like the extra steps involved in merging even though merging is largely automated Some files cannot be merged because they are in binary format The merge algorithm handles text files only not binary files such as bitmap images and office automation documents Accordingly AccuRev supports serial development through its exclusive file locking feature Each workspace is in parallel development mode exclusive file locking disabled or is in serial AccuRev Concepts Manual 27 development mode exclusive file locking enabled Yo
21. age facility can also track ongoing changes to elements changes made at different times and in different workspaces To support this capability AccuRev defines a change package entry in a more general way than a patch A change package entry for an element consists of all the real versions in the element s version graph between a specified basis version and a specified head version Between ness is determined both by direct predecessor successor connections created for example by Keep AccuRev Concepts Manual 35 and by merge connections created by Merge Patch connections are not considered in this determination the basis version itself is not part of the change package entry The following Version Browser excerpts show the range of complexity that a change package entry can have In fact these excerpts show how the same change package entry can change over time becoming more complex head version change package These illustrations suggest the following definition for a change package entry which is equivalent to the definition above A change package entry for an element consists of the element s entire version graph up to the specified head version minus the entire version graph up to the specified basis version For these purposes the version graph includes direct predecessor successor connections and merge connections but not patch connections Updating Change Package Entries When you w
22. ancestor of version X Such a version cannot be promoted to the parent stream the user must create a new version with a merge operation combining version X with the parent stream s version The new merged version can then be promoted Similarly an overlap can exist between the versions in two dynamic streams See deep overlap deep underlap underlap parallel development concurrent development The practice of having two or more users concurrently work on the same project modifying the same version controlled elements See serial development parent stream backing stream basis stream The stream that is just above a given workspace or stream in a depof s stream hierarchy The given workspace stream inherits versions from the parent stream pass through stream When a version is nominally promoted to pass through stream X the version automatically passes through X it is actually promoted to A s parent stream passive An element that is not active in a workspace or stream is said to be passive in that workspace or stream Passive versions can be overwritten by an update operation patch A set of versions of a text file e ement typically containing the recent changes made in one workspace Also the merge like operation that incorporates those changes into another version of the same element See merge basis version head version change package reverse patch AccuRev Concepts M
23. ant to create change package entry for a particular element but an entry for that element already exists in the change package AccuRev attempts to combine the new entry with the existing one Recall that there can be at most one entry for a given element in a given change package This produces an updated entry that includes all the changes A Little Bit of Notation To help explain how AccuRev performs change package arithmetic to combine and update entries we ll use a simple notation Suppose a change package entry contains the set of an element s versions defined by these specifications AccuRev Concepts Manual 36 the head version is H the basis version is B We ll use the ordered pair B H to indicate this change package entry Combining Two Change Package Entries Now suppose a new change is to be combined with the existing change package entry B H There are several cases each handled differently by AccuRev e Case 1 B H H X This simple case typically arises when you think you re done with a task and record your work as change package entry B H but it turns out that more work on the same element is required So you or a colleague start where you left off with version H and make changes up to version X Then you want to incorporate the new set of changes H X into the same change package original changes B H new changes H X version B version H version X In this case it s clear
24. anual 52 pathname optimization One of AccuRev s optimizations which improves the performance of workspace searches to determine the status of elements pending An element has pending status in a workspace if the version in the workspace has changes that have not yet been promoted to the parent stream The set of pending elements includes both kept elements and modified elements permission See ACL predecessor direct ancestor The rea version from which a given version was derived A version and its predecessor are not necessarily located in the same workspace stream In the Version Browser a version and its predecessor are connected by a black line Exception a version created by the revert command is connected to its predecessor by a dashed blue line preferences file An XML format file named preferences xml stored in the accurev subdirectory of your AccuRev home directory principal name The username of an AccuRev user recorded in the AccuRev repository private query AccuWork A query that appears in the Queries pane only for the user who created it See public query promote The operation promote command that transitions a version from being active in one workspace or stream to being active in the parent stream or some other stream This operation creates a new virtual version in the parent stream the virtual version provides an alias for the real version which was originally created in some use
25. ate level The most recent highest numbered transaction whose changes have been incorporated into a workspace through an update operation See scan threshold transaction level target transaction user A person who uses an AccuRev client program to access read and or change the data in the AccuRev repository Access is granted only to those who ogin with a username that was previously registered in the AccuRev repository AccuRev Concepts Manual 59 user group filter A subset of AccuRev users or groups which is used to limit the data displayed in parts of the AccuRev GUI validation AccuWork A rule specified on the Validations subtab of the Schema Editor that controls a particular edit form field This can take various forms including specifying a default value making a field required and modifying the list of choices in a multiple choice listbox See issue schema version A particular revision of an e ement reflecting a content change files only or a namespace change files and directories All versions are originally created in workspaces and can subsequently be promoted to dynamic streams The original workspace version is termed a real version Each promotion to a dynamic stream creates a virtual version which serves as an alias for pointer to the original real version version ID The unique identifier for a version consisting of two parts 1 the name or number of the workspace or stream i
26. ause it s a never changing configuration snapshot BLD451 base h ver 8 frammis c ver 39 gizmo c ver 45 e A parent snapshot acts as a stable starting point for any number of child streams No matter when a new child is created its initial configuration is an exact copy of the parent snapshot This structure is appropriate for managing multiple bugfixes to an old release Each bugfix stream starts with the versions that were used to build the original release say the versions in snapshot Release 2 5 final build initial configuration of child stream is Snapshot RLS2 5 exact copy of parent snapshot Jan 14 Jan 19 changes more ee y changes e Versions created at the bottom of the stream hierarchy rise up through the hierarchy by being promoted from stream to stream from child to parent then from parent to grandparent etc Promotion is one of AccuRev s most important operations enabling you to intuitively model a project s workflow AccuRev Concepts Manual 13 top level 2nd level Srd level 4th level stream streams streams streams promote For example after initial development work on a set of files is completed the files are submitted to unit testing then to internal system testing then to external system beta testing then to final production If this workflow is too elaborate for your organization or not elaborate enough
27. ble through a reference to the version object For now we ll skip the details of how to specify a version it s just a bit more complicated than saying version 45 of file gizmo c In addition to providing access to the actual file contents the version object stores additional information relating to the keep operation a timestamp the user who performed the operation a user supplied comment etc This kind of information is often termed metadata In general version objects are much smaller than the corresponding container files Developers often work with large source files they also work with audio image and multimedia files which AccuRev Concepts Manual 5 can be really big As developers create more and more versions the depot s file storage area may grow to many gigabytes requiring it to be split among multiple disk drives But since the metadata stored for the depot contains the relatively small version objects it grows much more slowly Most likely it will never outgrow its original storage location Versions of Non File Objects In all modern operating systems files are organized into directories or folders Some operating systems also support additional kinds of file system objects symbolic links hard links device files named pipes etc AccuRev provides full version control of directories A new version of a directory records the renaming of the directory or the moving of th
28. bunch of files Almost but not quite It s important to keep in mind that a software configuration does not contain the files themselves but AccuRev Concepts Manual 9 only a description or listing of the files and their versions Think of the difference between an entire book big and its table of contents small This crucial distinction makes it possible for AccuRev to keep track of hundreds or thousands of software configurations without needing an infinite amount of disk storage The change described above to file release_number txt illustrates the distinction between files and configurations of files The change to the contents of the file is something like this replace text line RELEASE 2 5 with text line RELEASE 2 5 1 The change to the software configuration is something like this replace version 4 of file release number txt with version 5 For another example of the distinction recall that a configuration takes into account filenames and directory structures too Consider this configuration srce gizmo c version 45 srce frammis c version 39 src base h verion 8 src release number txt version 4 doc Gizmo Overview doc version 19 doc Gizmo Relnotes doc version 3 Boldface shows the differences from the first configuration listed above The file contents are exactly the same but one filename has changed and the files have been organized into subdirectories So this is a different software configuration e
29. ccuRev copies the versions in the snapshot to the new workspace tree This step is just like the creation of a stream based workspace For example you might create a workspace containing exactly the source versions that were used to build Release 6 1 of your product That s the only time development data flows from the repository to the workspace It doesn t make sense to update the workspace because there s guaranteed to be nothing new in the snapshot It s a configuration that never changes You can make changes to the files in a snapshot based workspace saving the changes in the workspace stream with the keep command You can t promote the changes to the snapshot though because once again the snapshot is a configuration that never changes In some cases there won t be any need for such promotions For example some of the bugfixes to a previous product release never need to be propagated elsewhere You can just build the maintenance release s in the maintenance workspace where you ve fixed the bugs In other cases you ll want to incorporate bugfixes into ongoing development work perhaps Release 6 2 or 7 0 of your product AccuRev has special facilities including the Change Palette which enable you to propagate changes from a maintenance workspace or any snapshot based workspace to any stream AccuRev Concepts Manual 26 Variation 2 Reference Tree Let s go back to our original definition of a work
30. ch e ement in the stream or snapshot A reference tree based on a dynamic stream can be updated to incorporate the stream s recent changes reparent The operation that changes the parent stream of a particular workspace or stream replica repository A copy of part or all of the contents of the master repository that must be resynchronized regularly to remain current New transaction records are written to the master repository only making resynchronization necessary replica server The instance of the AccuRev Server process that is associated with a replica repository on the same machine It can directly service client programs repository read requests but forwards repository write requests to the master server repository The directory tree and database which together store all software configuration management data managed by AccuRev This data is maintained by the AccuRev Server responding to requests made through AccuRev client programs Users never manipulate the repository directly repository database The portion of the repository that stores data other than the contents of element versions See file storage area AccuRev Concepts Manual 54 reverse patch An operation that removes a selected set of changes from the current version of a text file element See patch change package revert An operation that removes a selected set of changes from a specified version by creating a new version that does
31. copies of the versions in the workspace s backing stream at the time of its most recent update Some of these files may have been placed in the workspace during previous updates Typically some files are copied into the workspace when it is originally created and are never touched thereafter because no new versions of the files are ever created in the backing stream AccuRev records the fact that the workspace is up to date as of the transaction that most recently precedes the time of the update This is completely accurate no new versions could have been created between that transaction and the update This transaction is called the current update level of the workspace e Files that you ve worked on in the workspace These are files that you ve modified or newly created and whose changes you ve preserved with the keep or add command You may also have promote d the latest version you created to the workspace s backing stream AccuRev can quickly fulfill a request to update the workspace because it doesn t need to consider every file in the depot Instead it needs to process only the files that have gotten new versions since the workspace s last update It accesses these versions by examining the set of transactions between the workspace s current update level and the most recent transaction When the update is complete the most recent transaction becomes the workspace s new update level Transactions and Issue Ma
32. current workspace The workspace whose data is displayed in the current tab or the workspace from which the current tab was invoked AccuRev Concepts Manual 45 cyclical In a change package dependency display refers to the situation in which issue A depends on issue B and issue B depends on issue A deep overlap deep underlap An overlap or underlap that is not in the current workspace or stream but in the parent stream or another stream higher up in the stream hierarchy default group The set of elements that are currently active in a particular workspace or stream default query An AccuWork query that you ve designated to be executed automatically in certain situations when you open a new Queries tab when AccuRev prompts you to specify one or more issue records in a co command when you execute promote and an AccuRev AccuWork integration is enabled defunct A particular kind of change to an element in a workspace or stream that the element is to be deleted The element disappears from the workspace or stream Somewhat counter intuitively it also becomes active in the workspace or stream because defuncting is a change that can be promoted to the parent stream or can be undone with a purge operation A defunct operation is originally recorded as a new version of the element in some workspace Promoting this version up the stream hierarchy causes the element to disappear from the higher level streams dependency See c
33. d deleted files defunct command When you promote a file s changes from your workspace to the backing stream the file is removed from the workspace s default group This reflects the fact that you re done working on that file at least for now Similarly a purge of your work on a file removes the file from the workspace s default group Updating a Workspace The workspace s two part structure workspace tree on the client side workspace stream on the server side plays an important role in how AccuRev keeps a workspace synchronized with the stream to which it s attached At any given time a workspace should contain e the files you re actively working on that is the members of the workspace s default group AccuRev Concepts Manual 25 e for each other version controlled file in the depot a copy of the backing stream s version You can think of the active files as being in the foreground of the workspace and the non active files as being in the background Those background files are copies of versions in the stream to which the workspace is attached That s why it s officially called the workspace s backing stream But a workspace often gets out of date with respect to its backing stream Typically each member of a development team has his own workspace and all the workspaces are based on the same backing stream For files that you re not working on your workspace contin
34. datimiga Workspa ce sisisi ceistean e eae eE EK EAE E heels 25 Variation 1 Workspace Based on a Snapshot ccceecescecsseceseceeeeeeeeeeseecesecneeeeeeeenseeeaeenes 26 Variation 2 Reference Tree cause tacesncatsansvaneaeses adstaseaatesatestavtavusanxtussesanevees qarenteracuentoauntaaere 27 Parallel and Serial Development ssiccasvsssccisdisd ccasscnnsivsdestevencsanceuptesrccseiiacemoseaiasasdatieaseaeanccaaes 27 Serial Development through Exclusive File Locking u u ssssuceeere renerne rennnne 27 The Limited Effect of an Exclusive File Lock ssssscsscsssssacssstusctenadssadiveditnessoienteianiauiess 28 Anchor Required Workspaces W u u u ssesessserere rese ersr seeren re renen apse deans 29 Getting Only the Files You Need the Include Exclude Facility 0 ececesesseeseereeeeeeeeeeees 29 Historical Note Sparse W ork spaces visssissevsadccasssussvededadsbacenedasaesveaaraanenianeesaducntesancsauiases 29 AccuRev Concepts Manual iii ACCUREV Transactions siscidcscics cosntisesdecccckcSeeaisedes oca ciaedevsncdasceseebecducbadeassicedesuccecdeadesesdecwuceseiesess 31 Transactions ate Atomi nse mier annn re EE R E RE E ined nates eevee 31 Transactions are Immutable acs cars aciegleeratcunnes oe lou totic caan dete weeees tcsrned aueaien ida dan shag gaa ttceoeueesecnses 31 Transactions and Workspaces u u sssesessessrererrere reen seeren coceestanesvasi viguecestudehacstdadivtalacerscisens 32 Transactions and Issue Mana
35. del many aspects of the software development process AccuRev Concepts Manual 11 Se AccuRey File Edit Actions View Issues Tools Admin Help Gta alVaeelwal2 2 BQ Depts F SEELI BB AR alse brown_Ris11 i brown RIs1 0 C Inch e hidden sans tai N snapshots caret user _ COn sues paths to workspaces a ohh B brown T EEEEEEEEEER EER top level stream 2nd level 3rd level 4th level 5th level root stream or streams streams streams streams base stream The main idea is to enable multiple development tasks to take place concurrently and to manage when and if work done for one task is shared with other tasks For example e A stream corresponds to a development task It might Wed Thurs be a long lived project such d d as the Release 2 5 RLS2 5 development effort or it base h ver 6 gizmo c ver 45 NH wert rf i base h ver 7 might be a quickie such as fix error message ERRO037 When a developer modifies an element the new version is recorded as a change to the configuration of a particular stream AccuRev Concepts Manual 12 e A snapshot corresponds to a project milestone such as Build 451 or Release 2 5 final build It s vitally important to be able to tell exactly which versions of which files went into Build 451 no matter what changes were made subsequently A snapshot answers this need precisely and completely reliably bec
36. directory is included in the workspace it remembers to bring newly created elements in that directory into the workspace during updates e You can use include rules and exclude rules to configure streams as well as workspaces The rules are inherited down the stream hierarchy For example to make the marketing directory invisible to all developers you can exclude that directory from a stream that all developers workspaces are based on either directly or through multiple stream levels AccuRev no longer supports the creation of sparse workspaces but you can continue to use existing sparse workspaces that were created in older versions of AccuRev AccuRev Concepts Manual 30 AccuRev Transactions The AccuRev data repository is organized into a set of depots each of which stores the complete revision history of a particular directory tree Each depot has its own section of the database Changes to a depot are structured as a series of transactions each of which saves all the information involved in a particular change to the database Thus the entire story of how a depot s directory tree has evolved is contained in its transaction history Transactions are a well established database technology helping to guarantee that the database is always in a self consistent state But for AccuRev transactions are not just a low level mechanism for achieving database integrity They play an essential role in organizing the user
37. e to the link See namespace change contributor Either of two versions of an e ement which are to be combined in a merge operation producing a new version of the element This can involve both content changes and namespace changes cross link An include exclude mode operation Include from Stream or incl b that includes an element in a workspace or stream specifying an alternative backing stream for that element Cross linking a directory also cross links the entire subtree below it Cross linked elements have xlinked status cross promotion A promote operation that propagates one or more versions from a dynamic stream to another stream that is not its direct parent See parent stream current change See current difference current depot CLI the depot associated with the workspace that contains current working directory GUI the depot whose data appears in the currently visible GUI tab The current depot s name is displayed in the status bar at the bottom of the GUI window current difference The currently highlighted difference section Diff tool or change section Merge tool current version The version of an e ement that currently appears in a particular workspace or stream It s also possible that a given workspace stream might not contain any version of a given element The current version can be directly active in the workspace stream if not it is inherited from the parent stream See passive
38. e default group backed passive add The operation that places a file located in a user s workspace tree under version control ancestor In the version graph of an element version A is an ancestor of version B is there is a direct line of descent possibly including merges from A to B See predecessor or direct ancestor A is an ancestor of B is equivalent to B is a descendant of A ancestry The entire set of versions of an element See version graph AccuRev Concepts Manual 41 anchor A checkout type operation which declares that a file element is under development in the current workspace AccuRev records the fact that the element is active by adding it to the workspace s default group With exclusive file locking anchoring a file in one workspace prevents it from being made active in sibling workspaces anchor required An optional setting on a workspace specifying that the workspace s file elements are to be read only until the user performs a checkout operation GUI Anchor command CLI anchor or co command anyuser A security related keyword describes the set of users who do not have passwords See authuser archive An operation that transfers the storage files for one or more versions from a depot s file storage area to its gateway area After the archived storage files are copied to off line storage the disk storage within the gateway area can be rec aimed atomic A
39. e directory to another location in the depot s directory hierarchy AccuRev provides file link and directory link objects which can be used to version control hard links and symbolic links junction points Promotion Real Versions and Virtual Versions Software development is much more than just creating and modifying files A typical development project involves many phases possibly including initial development integration of work done independently internal system testing external testing and final production AccuRev uses a promotion model to manage files in these multiple development phases Files progress through the phases one by one when a file passes the tests if any mandated for a particular phase a user working on that phase promotes it to the next phase initial dvt integration internal test phase phase phase prdmote prdmote _Promote AccuRev keeps track of each promotion by creating a new version of the file But promotion doesn t change the contents of a file it only changes the file s approval level Thus each new version object created by promotion is merely an additional reference to or alias for the same file in the depot s file storage area AccuRev Concepts Manual 6 _ depot internal test version promote integration version promote initial dvt storage file version metadata file storage area p
40. ently completed transaction for a particular depot See update level transition See workflow transition trigger The AccuRev facility that enables user defined procedures trigger scripts to be performed automatically before or after certain operations take place trigger script The executable program that implements a user defined procedure to be invoked when a trigger fires Also called a trigger program twins Two or more elements with the same pathname in a dynamic stream Example 1 an element is defuncted in a workspace 2 the element is promote d to the backing stream 3 another element is created at the same pathname in the same workspace or a sibling workspace 4 the new element is promoted to the backing stream undefunct The operation undefunct command that undoes the effect of a previous defunct operation restoring a previously removed e ement back to a workspace underlap Similar to overlap for both underlap and overlap the version in the parent stream is not an ancestor of your version With an underlap but not an overlap your version is an ancestor of the parent stream s version that is the parent stream version already contains all the changes in your version Deep underlaps can occur in the stream hierarchy just like deep overlaps See deep overlap deep underlap update The operation update command that copies new versions of e ements into a workspace from its parent stream upd
41. ents the file from becoming active in sibling workspaces executable bits Unix Linux only The data items in a file s access mode that controls the ability of users to invoke the file as an executable program external A file or directory that is located within a workspace tree but has not been placed under version control has external status File Browser The Explorer like tool in the AccuRev GUI that shows the contents of a workspace or stream file link This term is no longer used See e ement link and symbolic link file storage area The portion of a depot in which AccuRev maintains a permanent copy storage file of each newly created file version See metadata filter Same as an AccuRev search See also stream filter user group filter AccuRev Concepts Manual 48 folder directory A file system object that can contain files and other folders Each version of a folder records a change to its name and or pathname location in the depo s folder hierarchy from version One of the contributor versions in a merge operation In a typical merge it s the version in the parent stream that is to be combined with the version in the user s workspace gateway area A directory with a depo s slice but outside the depot s file storage area where version container files are staged for offline archiving The gateway area is also used to restore archived versions storage files group
42. environment Two aspects of AccuRev transactions make this possible atomicity and immutability Transactions are Atomic A user command that modifies elements is recorded as a single transaction in the metadata stored for the depot no matter how many elements are involved For example if a user enters a keep command to create new versions of 12 files a single transaction records all 12 versions What if something goes wrong for example a network failure while AccuRev is processing those 12 files The entire transaction is cancelled and no new version is created of any file We use the term atomic to describe this all or nothing aspect of AccuRev transactions The atomicity of transactions makes life simpler for the user He never needs to worry about how to finish up the work of a partially successful command If a command fails he just fixes the problem that caused the failure and enters exactly the same command again Atomicity also means that AccuRev s view of the various changes applied to the repository matches the user s view Note AccuRev does not record every change in a transaction only changes to your development data Thus keeping a new version is recorded in a transaction as is promote ing an existing version to a higher level stream But no transaction is recorded when you create a new stream or change the location of a workspace Transactions are Immutable Once a transaction is recorded in the metadata s
43. ersions for example version kestrel_dvt_jjp 13 of element sre brass c version kestrel_dvt_jjp 14 of element sre brass h version kestrel_dvt_jjp 16 of element sre commands c The basic idea is that this set or package of versions contains all the changes required to implement a certain development project But we need to refine this idea Consider that version 14 of brass h probably contains more than just the changes for that development project For example e Versions 1 7 might have been created years ago when the product was first developed e Versions 8 and 9 might have been minor tweaks performed last month e Versions 10 14 are the only versions with changes for the development project in question So we need a way to express the idea that only the recent changes to brass h those in versions 10 14 are to be included in the change package AccuRev accomplishes this by defining each change package entry using two versions a user specified head version and an older automatically determined basis version The recent changes to be included in the change package were made by starting with the basis version version 9 in this example and Keep ing one or more new versions versions 10 11 12 13 and 14 in this example In the AccuRev GUI the head version of a change package entry is usually identified simply as the Version Note the Patch command uses the same recent changes analysis to determine w
44. files are read only by default and must be anchored checked out before they can be modified Getting Only the Files You Need the Include Exclude Facility In some development situations it makes sense to configure your workspace to contain a specified subset of the depot s elements rather than all the elements The benefits can be quite significant e less clutter allowing you to concentrate on the files that are important to you e less disk space required to store your workspace on your machine e faster backups of your workspace e faster AccuRev processing of your workspace especially during the Update command AccuRev s include exclude mode implements this capability You use include and exclude rules to specify which elements in the backing stream become part of a workspace e An include rule can specify an individual file an individual directory s contents or the contents of an entire directory tree e An exclude rule can specify an individual file or an entire directory tree e Rules are inherited by lower level streams and workspaces in much the same way that versions are inherited e Rules at lower levels of the directory hierarchy can refine rules at a higher level For example a graphic artist might add a rule to exclude everything below the directory sre but then add another rule to include the single subdirectory sre gui images icons e An include rule can implement a cross link specifyin
45. g a different backing stream for an individual element or an entire subtree In effect this enables different elements to have different stream hierarchies even though they are in the same depot Include exclude rules are not restricted to workspaces they work throughout a depot s stream hierarchy Rules set in higher level streams are inherited by lower level streams Using rules in streams is a powerful way to partition a depot s elements for example to restrict different groups of developers to different parts of the source tree See The Include Exclude Facility on page 19 Historical Note Sparse Workspaces Prior to Version 3 5 AccuRev supported a feature similar to include exclude mode called sparse workspaces A sparse workspace started out empty you added certain elements to the workspace using the Populate command Those elements were maintained in the regular manner using Keep Promote and Update Other elements in the depot were ignored AccuRev Concepts Manual 29 This scheme was satisfactory for many purposes but there were some drawbacks For example an Update would not bring newly created elements into your workspace just new versions of the elements that you had already Populate d The include exclude facility has significant advantages over sparse workspaces e Include rules and exclude rules are official attributes of the workspace maintained in the AccuRev repository Since AccuRev knows that a
46. gement c23issxtaccusssasagiaendsdecststonseabansatesbancesaiarssdace txts taabaesateniete 32 AccuRev Accu Work Change Packages scccssccsssscssssccscssccccsscccssssscssesccesescesssscessssceeees 33 Structure of a Change Packace 25 527 seccanszelaciey ana tR eE AEK E OEE AE A ETAR 33 Creating Change Package Entries ox adetsuaesascaounesudyaeccaesoeruecanrnes tention ghee eoeuret tees dees numansaanses 35 Complex Change Package Pntricsis cs assess bias lac auasheaeat ecneuivelecauies aah aeauanheraaeeaacsss 35 Updating Change Package Entries ssitieiasivatiust ded aefacshsndssstannsadavna estat eqaasbaadeeiaacasdeeststaneeahed 36 A Little Bit Of Notation suser sd rangen A E A R 36 Combining Two Change Package Entries sirc5 seued salsyce eed natnnsuee cass rene renerne nerne 37 A COUR CV GlIOSSAFY ss did setvescucushushersesbeccstvuecsucassbccsossvadecstabecssbensudancnpaeecesisvescseuseeledeosss 41 AccuRev Concepts Manual iv AccuRev Concepts The chapters in this manual describe the main concepts and facilities of the AccuRev software configuration management system e e The AccuRev Data Repository What is a Software Configuration AccuRev Software Configurations The Stream Hierarchy AccuRev Workspaces and Reference Trees AccuRev Transactions AccuRev AccuWork Change Packages The manual concludes with a cross referenced AccuRev Glossary AccuRev Concepts Manual AccuRev Concepts Manual The AccuRev
47. h had originally been created in another workspace then was promoted to the backing stream Then the user created one or more versions in his own workspace up to and including version 5 11 the head version tools readme Similarly this change began when the user updated his workspace bringing in version 12 3 originally created in another workspace The user created one or more versions in his workspace ending with version 5 9 the head version Each change package can include at most one entry for a given element This rule helps to ensure that the changes in a given change package are consistent with each other See Updating Change Package Entries on page 36 AccuRev Concepts Manual 34 Creating Change Package Entries You can add entries to a change package manually right click a version in the File Browser Version Browser or 3 brass c History Browser and then select the Send to Issue FES command from the context menu The selected version commands c Open becomes the head version of the change package entry View AccuRev automatically determines the corresponding Save AS basis version As the examples above suggest AccuRev Dy Edit uses an algorithm that determines the set of recent changes to the element made in a single workspace Ex Keep In the Version Browser a variant command Send to Be Aneta Issue specifying basis enables you to pick the basis version rather than allowing AccuRev to determi
48. hange package dependency depot The portion of the AccuRev repository that stores the entire history of a particular directory tree See element version depot relative pathname A pathname that begins with Unix Linux or Windows indicating the path from the top level directory of a depot to a particular e ement descendant See ancestor diff An operation that compares the contents of two versions of a text file e ement AccuRev Concepts Manual 46 difference section In a text file comparison operation a location where the two files or two versions of the same file differ from each other The Diff tool highlights and counts the difference sections See change section direct ancestor See predecessor direct An issue record is in a stream indirectly if its versions were propagated to the stream with a promote by issue operation a cross promote not a standard child to parent promote Any other kind of promotion causes an issue record to be in a stream directly directory folder A file system object that can contain files and other directories Each version of a directory records a change to its name and or pathname location in the depor s directory hierarchy directory link This term is no longer used See e ement link and symbolic link double vision The appearance of two or more versions of an e ement in the same workspace or stream each version at a different pathname This is
49. hich changes in the from version are to be incorporated into the to version Where should the change package entry for brass h be recorded AccuRev already provides a mechanism for keeping track of development activities the AccuWork issue management facility Each task fixing a bug creating a new feature etc is tracked by a particular AccuWork issue record So it makes sense to implement change packages using issue records AccuRev Concepts Manual 33 Each issue record includes a Changes section that acts as an accumulator for versions changes Here s how the above example of a change package would appear in an issue record s edit form xia ci Bi ft head version Version Basis Version brass c src 5 13 5 10 B chap03 doc doc 5 1 1 1477 B tools readme Basics Assignment Misc Attachments Resolution Changes a Issue History tools 5 9 12 3 This change package has entries for three elements brass c The basis version 5 10 was created in the user s own workspace This indicates that the user promoted 5 10 to the backing stream AccuRev assumes that this change was for another task not the one covered by this issue record Then the user turned his attention to the current task creating additional versions up to and including 5 13 the head version chap03 doc This change began when the user updated his workspace bringing in version 4 7 of the element whic
50. hich belongs to a particular depot First you use any development tools to work with the workspace s copies of existing versions then you use AccuRev commands to store new versions in the depot In addition to creating new versions of existing files keep command you can use the workspace to add new files and directories to the depot add command rename files and directories move command and even rearrange the depot s directory hierarchy move command Because it s a separate directory tree a workspace provides an isolated private development environment The changes you make become public only when you enter a promote command This creates versions of one or more files in the attached stream These versions are public your changes are now promote available to be incorporated into other command workspaces attached to the same stream Subsequent promotions to higher level streams will make the changes available to an private even wider scope of workspaces data Getting Data Out of the Repository backing stream public data A stream is a changing software configuration of a depot A typical stream has new versions entering it all the time Some of the versions are promoted from the workspaces attached to them as described just above other versions are inherited automatically from higher level streams See Inheriting Versions From Higher Level Streams on page 17 AccuRev Concepts Manual 22 As new versions e
51. just one exception you can remove an entire depot from the repository AccuRev Concepts Manual 7 Removing depots that were created by mistake or perhaps for practice can help to reclaim valuable disk space Another strategy is to get rid of old versions of elements ones that you anticipate won t need to be used again AccuRev allows you to archive old versions moving their space consuming container files out of the repository to offline storage And if it turns out that you do need the versions after all you can restore them from offline storage to the repository Both depot removal and archiving versions are discussed in the AccuRev Administrator s Guide AccuRev Concepts Manual 8 What is a Software Configuration AccuRev is a software configuration management SCM product So what s a software configuration Software developers programmers QE engineers tech writers etc work with information stored in files The contents of the files change over time as developers work on them The developers save the changes in new versions of the files The organization of the files changes too new files are created old files are deleted some files get renamed and directory structures get reorganized Take a particular set of files for example the files required to build and deliver an application named Gizmo At any given moment this set of files is in a particular state which can be described in terms of versio
52. lement s change package entries cannot be coalesced caused for example by a gap the promote operation fails If this occurs proceed as described in section Cross Promoting Issues to a Non Parent Stream Patch Required in AccuRev Technical Notes concurrent development parallel development The practice of having two or more users concurrently work on the same project modifying the same version controlled elements See serial development configuration A set of e ement versions one version of each element Typically the set of versions currently in a particular workspace or stream conflict See conflicting change conflicting change The situation in which both contributors to a merge operation differ from the closest common ancestor at the same text line or set of lines Also the situation in which both contributors have pathnames that differ from the closest common ancestor and from each other AccuRev Concepts Manual 44 container file The ordinary file located in the file storage area of the AccuRev repository that contains the permanent copy of a version created in a workspace with the keep command content change A change to the contents of a file element recorded in a new version created with the keep command For a symbolic link element a change to the target pathname is a content change For an element link element a change to the target element is not considered a content chang
53. m We say that the workspace is attached to the stream or based on the stream And the stream is said to be the backing stream for the workspace we ll explain this term in Updating a Workspace on page 25 For example suppose a stream contains these versions of the elements in a very small depot src gizmo c version 45 src Erammis version 39 src base h verion 8 src release number txt version 4 doc Gizmo_Overview doc version 19 doc Gizmo_Relnotes doc version 3 A workspace attached to this stream is a directory tree containing e a src subdirectory containing four files gizmo c frammis c base h release_number txt e a doc subdirectory containing two files Gizmo_Overview doc Gizmo_Relnotes doc Another stream in the depot s stream hierarchy might contain different versions of some or all the files So for example the contents of files release_number txt and Gizmo_Relnotes doc might be different in a workspace attached to another stream Any number of workspaces can be attached to the same stream A typical scenario is for all the members of a project team to maintain workspaces attached to the stream that records the project s ongoing work Conversely a workspace can be attached to any stream But typically workspaces are created only at the leaf level of a depot s tree structured stream hierarchy if a stream acts as the backing stream for one or more workspaces it generally doesn t have child
54. mand checked out See checkout workflow A directed graph defined in the Workflow subtab of the AccuWork Schema Editor The graph s nodes are the workflow stages that an AccuWork issue record can pass through The graph s arrows are the workflow transitions that users invoke to migrate issue records from stage to stage workflow query An AccuWork query automatically composed in the Stream Browser or a Queries tab and then executed in order to determine which issue records are in a particular workflow stage workflow stage A node in an AccuWork workflow representing one of the steps in the lifetime of an issue record See workflow transition workflow transition An arrow in an AccuWork workflow pointing to a particular workflow stage This represents one step that an issue record can take through the workflow A transition has two components a transition action such as Finish Dvt and a workflow stage such as Implemented that is the arrow s destination Each workflow transition can be configured to start from any number of stages workspace A location in which one or more users perform their work using files under version control Each workspace consists of a workspace stream in the repository and a workspace tree in the user s disk storage workspace name The name by which users refer to a workspace A workspace name always ends with _ lt principal_name gt to indicate the user who
55. n In a text file merge or patch operation a location where the two contributors being merged differ from each other The Merge tool highlights and counts the change sections It also tracks the conflicting changes con licts the subset of change sections in which both contributors differ from the c osest common ancestor Conflicts must be resolved by human intervention See difference section AccuRev Concepts Manual 43 checkout An operation that makes a file active in a workspace without recording any new changes to the file in the repository In an exclusive file locking or anchor required workspace a checkout transitions the file from read only to writable checkpoint Stopping to save a version of an e ement then proceeding to make additional changes to the element client program An AccuRev CLI or GUI program through which users submit commands to be executed by the AccuRev Server closest common ancestor of two versions of an element The most recent version that is an ancestor of two specified versions Used in a merge operation to minimize the amount of work required to combine the contents of the two specified versions See merge version graph coalesce If a promote by issue operation a standard child to parent promote not a cross promote involves multiple issues whose change packages include the same element AccuRev attempts to combine those entries into a single valid change package entry If the e
56. n important characteristic of AccuRev transactions the entire transaction including all specified files must be performed successfully if not the entire transaction is cancelled as if it were never attempted authuser A security related keyword describes the set of users who have passwords See anyuser backed An element has backed status in a workspace or stream if it is not currently active there This means that the workspace stream inherits the version of the element that is currently in the workspace stream s parent stream also called the backing stream backing chain The path sequence of streams through the depot s stream hierarchy leading from a particular workspace or stream up to the depot s root stream backing stream parent stream basis stream The stream that is just above a given workspace or stream in a depot s stream hierarchy The given workspace stream inherits versions from the backing stream base rule The include exclude rule that makes the top level directory of a depot appear in the depot s root stream AccuRev Concepts Manual 42 base stream root stream The top level stream in a depoi s stream hierarchy basis stream parent stream backing stream The stream that is just above a given workspace or stream in a depoi s stream hierarchy The given workspace stream inherits versions from the basis stream basis time A date timestam
57. n numbers rae Adie ee version 45 frammis c Version 39 base h verion 8 release number txt version 4 Gizmo _Overview doc version 19 Gizmo Release Notes doc version 3 or in terms of time Gi 2me c last modified 2004 11 18 14 15 03 frammis c last modified 2004 11 18 14 15 19 base h last modified 2004 10 08 09 09 44 release number txt last modified 2004 11 17 21 59 34 Gizmo_Overview doc last modified 2004 11 20 17 25 00 Gizmo_Release Notes doc last modified 2004 11 21 19529957 That s a software configuration or more simply a configuration a particular set of versions of a particular set of files AccuRev s naming scheme for versions is slightly more complicated than version 45 of file gizmo c Note unlike some other SCM products AccuRev keeps track of changes to both files and directories In this discussion though we ll concentrate on files Suppose one of the files changes release number txt last modified 2004 11 24 07 19 18 version 5 Somebody forgot to modify the release number we re sure that has never happened at your organization You can think of this change as producing a new software configuration But in many situations it s more useful to think of this as an incremental change to an existing long lived configuration the one called Gizmo source base or perhaps more precisely Gizmo Version 2 5 source base So in the end is a software configuration just a
58. n which the version was created 2 an integer Examples talon_dvt_mary 14 245 19 Version Browser The AccuRev GUI tool that displays the version graph of an element version control The discipline of keeping track of the changes made over time to a file or directory version graph The directed graph data structure that shows the ancestry of an element The nodes are all the versions of an element and whose lines indicate how later versions were derived from earlier versions The Version Browser displays the version graph of an element version specification Identifies a particular version of one or more elements It can be a version D in many contexts it can be a stream or workspace name number which indicates the version currently in that stream workspace version tools AccuRev GUI tools that provide access to historical versions of elements The Version Browser provides easy access to all versions of an element The History Browser provides access to versions through the transactions in which they were created The Stream Version Browser provides easy access to the version that currently appears in a given stream AccuRev Concepts Manual 60 virtual version In a dynamic stream a version of an element created by the promote command which serves as an alias for reference to a previously created real version Ina workspace stream a version created by the co or anchor command referring to the real version that the com
59. nagement The atomicity of transactions makes it efficient to implement the integration between AccuRev s basic version control facility and its issue management facility AccuWork Suppose a particular AccuWork issue record contains a bug report When you fix the bug by modifying five files you ll want to note this fact in the issue record AccuRev can simply note the single promote transaction that placed the fixed versions of the five files in the backing stream Alternatively you can have AccuRev keep track of the individual versions in the issue record in this case the issue record acts as a change package recording all the versions that were created to implement a particular bugfix or new feature AccuRev Concepts Manual 32 AccuRev AccuWork Change Packages Any version control system must be able to keep track of the changes that developers make to individual files A full fledged configuration management system like AccuRev should be able to handle questions like these What were all the changes made to source files in order to fix bug 457 Have all the changes made to fix bug 457 been handed off to the QA Group That is have the appropriate versions been promoted to the QA stream AccuRev can handle such questions through its change package facility Change packages are available in the AccuRev Enterprise product only Structure of a Change Package A change package is a collection of element v
60. ne it i Derunct automatically Populate You can also invoke the Send to Issue command on the New gt Changes tab of an issue record This copies an existing change package entry to a different change package issue i recor d Er Properties AccuRev can record change package entries automatically whenever the Promote command is invoked in a workspace For example suppose issue record 3 represents a particular bug and its fix Whenever a developer promotes one or more versions whose changes address that bug he specifies issue 3 at a prompt AccuRev automatically creates a change package entry in issue 3 for each promoted version Automatic recording of change package entries is enabled through the change package level integration between AccuRev configuration management and AccuWork issue management For more on both these integrations Jntegrations Between AccuRev and AccuWork on page 77 of the AccuRev Administrator 5 Guide Complex Change Package Entries All change package entries are recorded in terms of real versions those created in users workspaces even though there may be corresponding virtual versions created by promoting the real versions from workspaces to dynamic streams In all the examples shown above each change package entry is a series of consecutive real versions created in the same workspace that is each change package entry records a particular patch to the element But the change pack
61. nen rer sneen eee 7 What is a Software Configuration 0seorssoscoscesessoesssssosssssossosvenssscessssossssoessosensssecassseeiscesies 9 Software Configurations and Development TaskS ccccecccesseceteceeeeeeeeeeeeceeceeeeeeeeenseees 10 AccuRevy Software Configurations Th Stream Hierarchy sccicscccasscsdsccessenccedsuossecdscunscacssisceaseomaseaseussasenasbenansdeudanekienscansdiovasatceascecans 11 How Changes Migrate Through the Stream Hierarchy cccccecccesseesceeeseeeteeeeeeeeseeenseeees 15 Inheriting Versions From Higher Level Streams 0 cceccceecceeceeeeseceteceeeeeeeeeeseeesaeens 17 P ss Throush Streams sorterede dernede dene 18 Th Incl de Excl d PAC ICY screenie a a 19 AccuRev Workspaces and Reference Trees ssesssesssecssoossoossoosessesssesssocssoossoossssesssesssosssosssse 21 Using a Workspat Eira a E e a E econ 21 Putting Data Into the Repository acininsescsacsionicatesosnsvadsdesssacciarvntessdsinonsmbatessooiaosoataten as 22 Getting Data Out of the Repository sssesessssssesseeseesresseesrtsrrsresseestesresseesesersstessessrssees 22 The Workspace s Built In Stream sseseseessessesseessessresesseestsstesstestesesseesseeseestesseeseseesseesse 23 Real Versions and Virtual Versions seneve veere rerrersr rene renere renten enten renere renee 25 Active Files and the Default Group cccccccecssessseceecesseeescecaecesecseceeeaeecaeceeeseneeeaaees 25 Up
62. nter a stream they become available to the 15 33 a workspace s attached to the d f stream But AccuRev never copies a new version of a file int f f wv n of a file into your Ne workspace automatically Instead 2 f i you periodically use AccuRev fs commands to update the i i Pi workspace This replaces existing files or adds new ones so that the files in the workspace update update on Jan 15 on Jan 26 accurately reflect the backing stream s current contents including any recently arrived versions AccuRev takes care not d gt to clobber files that you re working on when it copies new versions to the workspace The Workspace s Built In Stream The diagram above showing how data flows from a workspace into the repository is an oversimplification Changes that you make in your workspace don t actually go directly into the backing stream Long experience with configuration management systems has shown that users sometimes enter changes into the repository before they re truly ready to be shared with others for example code that s never been tested But a delaying strategy also has its drawbacks for example it increases the chances of mistakenly deleting several weeks worth of changes without ever preserving them in the repository Some other version control systems use private branches to address these issues AccuRev solves the problem by building a private stream into each work
63. o include the entire uninterrupted series of versions B X in your change set this includes both your original changes and your new changes and harmlessly your colleague s changes too Accordingly AccuRev can span the gap between the two change set entries in order to create a single combined entry e Case 3 B H K X where H is not an ancestor of K change package merge required This case typically arises when developers in workspaces that do not share the same backing stream try to use the same change package There is no simple gap between the existing change package entry and the new one which means there is no way to combine them into a single change package entry according to definitions in Complex Change Package Entries on page 35 original changes B H new changes K X version B version H version K version X AccuRev Concepts Manual 38 AccuRev signals this situation with a change package merge required message and cancels the current operation You can remedy this situation by performing a merge at the element level There is no merge operation defined at the change package level In the example above merging version H and version X would create a new version a change package entry with the new version as its head can be combined with the existing entry AccuRev Concepts Manual 39 AccuRev Concepts Manual 40 AccuRey Glossary 3 way merge The kind
64. of algorithm that AccuRev uses to combine the contents of two versions contributors of a text file e ement it compares the two files line by line with a third version the closest common ancestor of the contributors access control list A data structure that controls the rights of one or more users or groups of users to access the data within a particular depot or stream access mode Unix Linux only The standard set of permissions user group others read write execute as they apply to a particular file element AccuRev home directory A subdirectory named accurev of your operating system home directory or of the directory specified by environment variable ACCUREV_HOME This subdirectory stores your preferences file and other AccuRev configuration files AccuRev Server The program that manages the AccuRev repository and handles commands issued by AccuRev client programs ACL A set of entries permissions that controls the rights of individual users or user groups to access the data within a particular depot or stream active An element is said to be active in a workspace or stream if a new version of the element has been created there and that version has not been either 1 promoted to the parent stream or 2 purged from the workspace or stream An issue record is said to be active in a workspace or stream if the head version of one or more of its change package entries is in the stream s default group Se
65. of its most important and unique features AccuRev Concepts Manual 4 Developers working on their files that s the principal activity in any software development environment With AccuRev a developer s files are stored in an ordinary directory structure perhaps on the hard drive of a personal computer or laptop perhaps in a designated area of a well backed up disk farm etc The only thing special about such a developer s work area is that AccuRev keeps track of its association with a particular depot The work area is termed a workspace for more information see AccuRev Workspaces and Reference Trees on page 21 A developer can use any software tools to create and edit files compile and build modules and applications AccuRev doesn t get involved in these operations at all so there s no performance penalty Every so often the developer tells AccuRev to save the current contents of a file or a group of files This operation called a keep does two things e Copies the current contents of the file to a container file in the depot s file storage area e Creates an associated version object in the depot s schema 7 depot S storage file N metadata file storage area d keep operation N A modified N file N workspace This association is permanent no matter what happens in the future the contents of the file will always be availa
66. p setting for a stream affecting which versions the stream inherits from its parent stream for each element the version inherited is the one that was in the parent stream at the basis time See snapshot basis version A particular ancestor of the version specified in a patch revert diff or co command The series of versions between the basis version and the specified version constitute the recent changes to be patched into or removed from the target Similarly a change package entry consists of all the versions between a specified basis version and a specified head version change package A set of entries each in the form of a basis version head version pair recorded on the Changes tab of an issue record The change package records the changes to one or more elements made to implement the feature or bugfix described in that issue record Each entry in the change package describes changes to one element the changes between the basis version and the head version See patch change package dependency A relationship between the change package of an issue record A and the change packages of one or more other issue records B C D expressing the fact that promote ing A would also cause some or all of the changes in B C D to be promoted Change Palette The AccuRev GUI tool that enables users to perform merge and promote operations involving any streams not just a workspace and its parent stream change sectio
67. piter metadata _ depot saturn metadata file storage area file storage area Single Depot vs Multiple Depots You can place all version controlled files in a single depot or split them among multiple depots In general we advise storing all files for a given project in the same depot By project we mean all the programs and other software deliverables that share the same development test release procedures and the same release cycle The procedures determine how a depot s stream hierarchy will be structured the release cycle determines how the stream hierarchy will be used If Project X and Project_Y have completely different release cycles then put their source files in different depots Likewise if Project_A requires stringent in house regression testing and two levels of beta testing whereas Project B is mandated to ship yesterday use different depots Note if you use the include exclude facility you can have a single depot serve multiple partially independent or totally independent projects See The Include Exclude Facility on page 19 AccuRev has no scalability limits so there is no problem in storing thousands tens of thousands or even hundreds of thousands of files in a single depot Inside a Depot Versions and Files Let s look inside a depot to examine its architecture This will help explain how AccuRev works and will illuminate some
68. r s workspace See version public query AccuWork A query that appears in the Queries pane for all users See private query purge The operation CLI purge command GUI Revert to Backed command that discards the changes made to an e ement in a given workspace or stream query A set of search criteria that selects AccuWork issue records based on the records field values Within each depot containing issue records one of the queries designated as the defau t query AccuRev Concepts Manual 53 to be invoked automatically in certain situations calling for the user to specify one or more issue records real version A version of an e ement created in some user s workspace recording a change to the contents and or pathname of the element See version virtual version recent changes A set of versions of a particular file element representing the changes made to accomplish some task or any set of related changes The recent changes start with the current version or another selected version termed the head version they extended backward to but do not include the corresponding basis version reclaim An operation that deletes archived storage file from a depot s gateway area to reduce the amount of disk storage required for the depot s s ice reference tree A directory tree in users disk storage that instantiates a particular dynamic stream or snapshot It contains a copy of the current version of ea
69. repository wide information e a schema for each depot each of which contains depot specific metadata and AccuWork issue records For licensing purposes AccuRev s issue management capability is termed AccuWork e the site_slice directory which contains repository wide AccuWork data workflow configuration data server preferences and triggers e the depots directory which contains a set of subdirectories each storing an individual depot A depot subdirectory stores one or both of e aversion controlled directory tree all the versions of a set of files and directories e AccuWork schema query and change package configuration data The illustration below shows the modular structure of the AccuRev data repository Logically the entire repository is located on the machine where the AccuRev Server program runs but only the accurev database must physically reside on the server machine The file storage areas which typically are far larger than the databases and grow far faster can be located elsewhere For example the file storage area of depot jupiter might be located on another disk on the AccuRev server machine and the file storage area of depot saturn might reside within the local area network s disk farm AccuRev Concepts Manual 3 AccuRev Data Repository A depot mars oe o i Hy UL O site o metadata metadata file storage area depot ju
70. ser identity username with the login command The username must have been created previously AccuRev licenses specify a maximum number of currently active usernames master repository The primary data repository that logs all transaction activity processed by the AccuRev master server All storage depots are created in the master repository from which they can later be replicated master server The instance of the AccuRev Server process that handles all transactions that change the status of e ements in the master repository Only the master server can write data to the repository See replica server member An element has member status in a workspace or stream if one of its versions is in the default group of that workspace or stream An element with member status is said to be active in that workspace or stream otherwise it s passive merge An operation that combines the contents of two versions contributors of the same e ement To merge the contents of text files AccuRev uses a 3 way merge algorithm it compares the two files line by line with a third file the version that is the closest common ancestor of the other two Merging of namespace changes also takes into account the closest common ancestor metadata Information stored in the AccuRev repository other than the contents of file versions Metadata is stored in the repository database file contents are stored in the file storage area modified
71. space This built in stream is separate from the backing stream Here s a more detailed diagram showing how data flows from a workspace into the repository this one includes the workspace s built in stream AccuRev Concepts Manual 23 backing stream depot s file storage area promote command workspace stream workspace tree keep command depot s database workspace This diagram shows that in AccuRev s client server world a workspace has one foot on each side of the divide e The ordinary directory tree that we discussed above the workspace tree lives on the client side The development data you work with on a day to day basis lives entirely in the workspace tree it s just a bunch of files e The built in stream the workspace stream lives on the server side in the data repository managed by the AccuRev Server It contains all of the workspace s configuration management information And it resides as all streams do entirely within the metadata stored for a particular depot The diagram also shows that recording a new version of a file in the backing stream is a two step process 1 The keep command creates a new version in the workspace stream Think of keep as moving data from the client side to the server side This command also copies the file in your workspace tree storing the copy in the depot s file storage area The data stays within the workspace remaining private 2 The
72. space an ordinary directory tree that instantiates a stream or a snapshot We expanded that definition showing that a workspace also includes mechanisms for creating new versions in the stream Sometimes though you don t need to create any new versions you just need the files For example you might want a complete set of your product s source files in order to test the speed of a new C compiler For such just the files purposes you can create a reference tree instead of a workspace A reference tree instantiates a stream or snapshot but doesn t provide any mechanism for creating new versions Thus you can t use the keep or promote commands when working in a reference tree You can use the update command though Here s a typical scenario e Create a reference tree named nightly based on stream gizmo_dvt e Each night perform an update of the reference tree This retrieves new copies of the files for which new versions appeared in the gizmo_dvt stream that day e After the update is complete build the Gizmo software application using the updated sources You can think of a reference tree as a 1 way portal to the AccuRev data repository in contrast to a workspace which is 2 way Parallel and Serial Development Like other advanced configuration management systems AccuRev supports parallel development e Edit Stage Two or more users start with the same data a particular backing stream version of a file E
73. st of the world Real Versions and Virtual Versions The difference between keep and promote highlights an important aspect of the way that AccuRev organizes and manages development data It also highlights the difference between backing streams and workspace streams All real development takes place in workspaces because that s where the files are The keep command preserves the changes you ve made to a file Java source file Perl script MPEG audio file etc Accordingly versions created by the keep command are called real versions Real versions live in workspaces more precisely every real version is created in the built in workspace stream of some workspace By contrast the promote command does not record a new change to any file Rather it changes the approval level and availability of a change that was previously recorded with keep The version that promote creates in a higher level stream is called a virtual version each virtual version is just a pointer to or alias for an existing real version in some workspace stream Active Files and the Default Group AccuRev keeps track of which files you re actively working on in your workspace This set of files is called the workspace s default group It includes all the files for which you ve recorded changes in the repository Typically most of the changes are new versions created with keep The default group also includes renamed or relocated files move command an
74. t inherit The facility by which versions in higher level streams automatically propagate to lower level streams If an e ement is not currently active in a stream or workspace the stream workspace inherits the version of the element that appears in its parent stream invisible Describes a data structure that has been deactivated remove command and so does not appear in default GUI displays or CLI listings issue record AccuWork A set of data consisting of fields and values which represents one AccuWork issue in the current depot Each issue record implements a bug report feature description etc issue schema AccuWork The set of specifications that define the structure of issue records in a depot data fields and their value types ranges edit form layout field validations keep The operation keep command that creates a new version of a file element in a workspace permanently recording in the AccuRev repository a change to the contents of the file kept Refers to a version that has been created with a keep operation lock dynamic stream A control on the ability to perform promote and include exclude operations involving the Stream lock file element A control on the file e ement requiring 1 users must anchor the file before editing it and 2 if a user has anchored the file users in sibling workspaces cannot anchor or edit the file AccuRev Concepts Manual 50 login Establishing a particular u
75. ther backing streams and the workspaces based on them e The lock acquired through workspace level or depot level exclusive file locking applies only to workspaces in serial development mode Users in parallel development mode workspaces can make changes and promote the changes to the backing stream A lock placed on an individual file element in a workspace applies to all sibling workspaces e The lock doesn t prevent the current version in the backing stream from being promoted to higher level streams Exclusive file locking does not prevent any user from modifying any file with a text editor or IDE AccuRev encourages users in serial development mode workspaces to ask permission first it maintains files in a read only state and makes a file writable when a user executes a co or anchor command on it But users can modify a file without asking permission by changing the access mode Unix Linux chmod command Windows attrib command or Properties window and then editing it Such unauthorized changes can t be sent to the AccuRev depot though the exclusive file lock disallows a co anchor or keep AccuRev Concepts Manual 28 Anchor Required Workspaces AccuRev also offers a less restrictive variant of exclusive file locking Anchor required workspaces allow parallel development with multiple users modifying the same file at the same time in their own workspaces But as in the exclusive file locking environment
76. tored for the depot it s there permanently There is no way to revise or delete an existing transaction we describe the transaction as immutable And we describe the metadata as being append only This property is essential to successful configuration management Users must be able to recreate previous configurations with absolute reliability The immutability of transactions means that users can reproduce any previous configuration not just a few configurations that they happened to designate with a save or label command AccuRev does make it easy to undo the effect of a transaction For example the revert command reinstates an old version of one or more files But this is accomplished by recording an additional transaction not by removing any existing transaction AccuRev Concepts Manual 31 Transactions and Workspaces This section describes how AccuRev uses a depot s transaction history to efficiently manage the contents of the depot s workspaces Over time the version controlled files in a workspace change in two ways you modify certain files yourself using text editors and other development tools and you periodically use the update command to get copies of the files that your colleagues have modified Accordingly at any given moment the version controlled files in a workspace fall into two categories e Files placed in the workspace by the update command All of these files are unmodified
77. tream path and all children of each stream in the filter This subset is used to build the StreamBrowser display and populate lists of streams in the AccuRev GUI as long as stream filtering is in effect stream hierarchy The tree structured collection of streams including snapshots and workspace streams for a particular depot stream lock See lock dynamic stream stream path A sequence of streams that starts at the root stream and ends at the stream being referenced See also stream StreamBrowser The GUI tool that provides both graphical and tabular view of a depot s stream hierarchy It has commands for comparing streams promo e ing versions between streams and other stream based operations symbolic link symbolic link element An e ement whose contents is a pathname The pathname can point to AccuRev data that is a location inside a workspace or non AccuRev data AccuRev Concepts Manual 57 target element link symbolic link the file system location that the link points to target transaction The most recent transaction at the time of a workspace s most recent update The update command attempts to load versions created in transactions up to and including the target transaction time based stream A stream that has a basis time affecting which versions it inherits from its parent stream time spec A specification of a particular date time combination used in various contexts creating snapsho
78. ts viewing portions of the history of an e ement etc TimeSafe The aspect of AccuRev s architecture that guarantees the reproducibility of any previous configuration of a stream a depot or the entire repository timestamp optimization One of AccuRev s optimizations which improves the performance of workspace searches to determine the status of elements timewarp A situation in which the discrepancy between a client machine s system clock and the AccuRev Server machine s system clock exceeds the allowable limit to version One of the contributor versions in a merge operation In a typical merge it s the version in a user s workspace that is to be combined with the version in the parent stream transaction A record in the AccuRev repository database that indicates a particular change promoting of a set of versions changing the name of a stream modification to an issue record etc Each transaction has an integer transaction number which is unique within the depot transaction level integration The AccuRev facility that records the transaction number of a promote operation in a user specified AccuWork issue record This facility is enabled on a depoi by depot basis by a trigger transaction history The set of transactions related to a particular depot stream element or other AccuRev data structure that changes over time AccuRev Concepts Manual 58 transaction level The number of the most rec
79. u can also set file locks on individual elements The serial development model places more restrictions on users in the edit stage but it eliminates the merge stage altogether Here s the standard scenario in which all the workspaces are in serial development mode 1 A user starts working on a file by specifying it in a co checkout or anchor command The file changes from being read only to writable 2 AccuRev places an exclusive file lock on the file This prevents the file from being processed with co anchor or keep in other workspaces 3 The user can edit and keep any number of private versions of the file in his workspace Then the user promotes his most recently kept version to the backing stream The exclusive file lock guarantees that no merge will be required before this promotion 4 After promote records the new version in the backing stream things return to the initial state AccuRev releases the exclusive file lock and the file returns to read only status in the user s workspace 5 A user in any workspace can now co or anchor the file which starts the exclusive file locking cycle again For more details see Exclusive File Locking and Anchor Required Workspaces on page 4 of the AccuRev CLI User s Manual The Limited Effect of an Exclusive File Lock Exclusive file locking does not freeze an element completely e The lock applies only within the scope of a particular backing stream It doesn t affect o
80. ual 55 site slice The subdirectory tree within the AccuRev repository that stores repository wide information such as AccuWork configuration data workflow configuration data server preferences and triggers By default the top level directory of this subtree is named site_slice See repository database slice The subdirectory tree that contains the depot s i e storage area By default the top level directory of this subtree has the same name as the depot itself snapshot 99 66 An immutable frozen static stream that captures the configuration of another stream at a particular time A snapshot cannot be renamed or modified in any way sparse workspace deprecated see include exclude A workspace in which only a subset of the depots elements are loaded stage See workflow stage stale An element has stale status in a workspace if it is not currently active in the workspace but anew version of the element has entered the parent stream An update operation will overwrite the stale version with the parent stream s new version static stream An AccuRev snapshot The term static stream emphasizes the fact that snapshots are part of a depot s stream hierarchy status The state of an e ement from a version control perspective in a particular workspace or stream status indicator A keyword usually enclosed in parentheses that reports the AccuRev level status of a particular element
81. ues to have copies of old backing stream versions even as your colleagues are promoting new versions of those files to the backing stream If the backing stream contains a file more recent than one in your workspace that file s status in your workspace is stale Updating the workspace clears the stale status restoring it to backed aa It s the job of the update command to synchronize the workspace and its backing stream in this way To determine which files you re actively working on update looks in the workspace stream it considers a file to be active if you ve created one or more new versions of it in the workspace stream Then update makes sure that the workspace tree contains a copy of the backing stream version of each non active file Typically this involves replacing old files with new files But it can also involve renaming relocating and removing files if those kinds of changes have recently been recorded in the backing stream Variation 1 Workspace Based on a Snapshot A workspace can be based on a snapshot instead of a stream Initially this might not seem to make sense after all a snapshot is an unchanging software configuration and a workspace is a tool for getting changes in and out of the data repository a two way portal But a snapshot based workspace is quite useful for example for performing maintenance work on a previous product release When you create a snapshot based workspace A
82. utomatically inherits an active version from a higher level stream The diagram below shows how the four active versions fill out the entire stream hierarchy AccuRev Concepts Manual 17 This scheme makes it easy for an organization to manage many development tasks concurrently each with its own software configuration in a separate stream As changes are made for certain tasks AccuRev takes care of automatically applying the changes to the software configurations used by other subsidiary tasks except for the tasks that are actively working on the same file s Just a few promote operations can effectively propagate versions to tens or even hundreds of other streams Pass Through Streams AccuRev features a special kind of stream called a pass through stream A version that is promoted to such a stream automatically passes through to the parent stream The file doesn t become active in the pass through stream it does become active in the parent of the pass through stream pass through stream promote L Pass through streams are useful for grouping lower level streams Most commonly the streams to be grouped are ones built into user workspaces For a full discussion of workspaces see AccuRev Workspaces and Reference Trees on page 21 For example suppose a swat team of four programmers often moves from project to project AccuRev accomplishes the task of moving a programmer from Project A to Project B
83. ven though there has been no change to the contents of the files Software Configurations and Development Tasks In most modern software development organizations many tasks are under way concurrently At the beginning of this section we listed a few new products new releases of existing products ports to different platforms and bugfixes In addition consider the fact that each one of the above tasks is often several coordinated efforts initial development unit testing internal system testing external system beta testing final production To enable all the tasks to progress smoothly at the same time each person gets her own software configuration her own set of versions of the files in the repository A small close knit team might choose to share a single configuration It s the job of the software configuration management system such as AccuRev to help the organization e Keep track of the various configurations e Manage preserve and protect changes to the files e Detect conflicting changes that take place in different configurations for example two people modify the same section of the same file e Resolve such conflicting changes AccuRev Concepts Manual 10 AccuRev Software Configurations The Stream Hierarchy This section discusses the AccuRev implementation of software configurations Be sure to read the section What is a Software Configuration before this section First we set the
Download Pdf Manuals
Related Search
Related Contents
Samsung NP-P428I User Manual (FreeDos) EOGEN-Anleitung - Kemmerich Elektromotoren BX 2E-15E - VEAB Heat Tech AB PROYECTO FIN DE GRADO Kata ABS-HDV Copyright © All rights reserved.
Failed to retrieve file