Projects.Archipel History
Hide minor edits - Show changes to markup
- VersionControlWishlist (collections of things I'd like to see in VCS)
Current status update : as this wiki page was linked from wikipedia, I got some attention on Archipel. The project has been stalled for a year now, but I would be really interested in resuming it. Latest sources can be accessed from http://software.type-z.org/downloads, and if there is somebody interested in working on it with me, I will resume the project.
- File, an ubiquitous utility that can guess a file MIME-type and encoding. Filetype is a less-featured and less-mature (and I guess deprecated) alternative......
- File, an ubiquitous utility that can guess a file MIME-type and encoding.
Intermediate usage
Annotating files and directories
archipel annotate [file|directories] [name] [value]
Setting up filters
archipel filter create [name]
or
archipel filter edit [name]
or
archipel filter remove [name]
or
archipel filter list
Advanced usage
Creating branches
Merging branches
Subscribing to a branch
Organising branches
Current status update : as this wiki page was linked from wikipedia, I got some attention on Archipel. The project has been stalled for a year now, but I would be really interested in resuming it. Latest sources can be accessed from http://software.type-z.org/downloads, and if there is somebody interested in working on it with me, I will resume the project.
- ftp://ftp.astron.com/pub/file/ File, an ubiquitous utility that can guess a file MIME-type and encoding. http://www.pldaniels.com/filetype/ Filetype is a less-featured and less-mature (and I guess deprecated) alternative.
- ftp://ftp.astron.com/pub/file/ File, an ubiquitous utility that can guess a file MIME-type and encoding. http://www.pldaniels.com/filetype/ Filetype is a less-featured and less-mature (and I guess deprecated) alternative.http://luukurkkuun.com/gay-gang-bang-college-gang.html .http://orgy-sex.selectedsex.com/anal-gang-bang-crew-gang.html .http://gang-bang.sex4dollar.com/wife-gang-bang-gang-milf.html .http://house9999.com/orgy-sex.html .http://beitshalomadelaide.com/wife-gang-bang-gang-milf.html .
1. General document conventions
This sections presents Archipel command-line usage. Every example is given using a relatively simple syntax:
Intermediate usage
archipel [command] [arguments]
Annotating files and directories
Where something between is a value of the given type. This "something" can be assigned a cardinality. For instance,
@ and @
archipel annotate [file|directories] [name] [value]
Setting up filters
archipel status [file|directory]+
archipel filter create [name]
indicates that the status command of Archipel can take 1 to many argumens of type file or directory, which are the two basic types (with litteral, meaning a text string) that Archipel commands can take.
or
archipel filter edit [name]
or
Intermediate usage
archipel filter remove [name]
Annotating files and directories
or
archipel annotate [file|directories] [name] [value]
Setting up filters
archipel filter list
archipel filter create [name]
Advanced usage
or
Creating branches
archipel filter edit [name]
Merging branches
or
Subscribing to a branch
archipel filter remove [name]
Organising branches
or
References
archipel filter list
ArchipelDeltas, presents a list of current deltas available in Archipel.
Advanced usage
Here is a short list of papers which participated in the development of Archipel :
Creating branches
- http://citeseer.ist.psu.edu/westfechtel00layered.html A Layered Architecture for Uniform Version Management, is the paper that motivated me to start working on Archipel
- http://www.idt.unit.no/~bjornmu/thesis/thesis.html Versioning in a Software Engineering Database - the Change Oriented Way, by Bjørn P. Munch, which seems to be one of the original work that allowed the above paper to be written.
- Ragnarok?, an architecture-based software configuration management system. Ragnarok promotes the notion of high level deltas, and offers a different perspective of what SCM can be.
Merging branches
Here are some articles/pages of interest:
Subscribing to a branch
- http://www.linuxjournal.com/article.php?sid=1237 Diff, Patch and Friends is a Linux Journal article on these widely used tools, also used by Archipel. It also references an http://www.linuxjournal.com/article.php?sid=1250 old article on RCS, which is amusing and let you understand what changed since then.
- Yann Dirson's http://ydirson.free.fr/en/software/scm/vc.txt thoughts on version control
Organising branches
Here is a list of related software:
References
- http://www.venge.net/monotone/index.html Monotone, a distributed version control system that uses SHA-1 signatures as version identifiers. I actually liked this idea very much, and decided to use it in Archipel.
- http://wiki.gnuarch.org/ Arch, a distributed version control system that can use FTP or HTTP for communicating patches. I liked its flexibility and shell integration, but found it complicated and intrusive.
- http://abridgegame.org/darcs/ DARCS, a version control system which uses different types of deltas. For instances, there is a delta for replacing the occurences of a string in text files. This is where I realized that version control deltas were simply serializable and undoable commands.
- http://prcs.sf.net PRCS, a version control system which I used and really liked for its cleanliness and simplicity. Sadly, it does not support distribution, FTP or HTTP repository checkin and checkout, or binary files. Otherwise, it would be just great.
ArchipelDeltas, presents a list of current deltas available in Archipel.
Here are the software used by Archipel:
Here is a short list of papers which participated in the development of Archipel :
- http://citeseer.ist.psu.edu/westfechtel00layered.html A Layered Architecture for Uniform Version Management, is the paper that motivated me to start working on Archipel
- http://www.idt.unit.no/~bjornmu/thesis/thesis.html Versioning in a Software Engineering Database - the Change Oriented Way, by Bjørn P. Munch, which seems to be one of the original work that allowed the above paper to be written.
- Ragnarok?, an architecture-based software configuration management system. Ragnarok promotes the notion of high level deltas, and offers a different perspective of what SCM can be.
Here are some articles/pages of interest:
- http://www.linuxjournal.com/article.php?sid=1237 Diff, Patch and Friends is a Linux Journal article on these widely used tools, also used by Archipel. It also references an http://www.linuxjournal.com/article.php?sid=1250 old article on RCS, which is amusing and let you understand what changed since then.
- Yann Dirson's http://ydirson.free.fr/en/software/scm/vc.txt thoughts on version control
Here is a list of related software:
- http://www.venge.net/monotone/index.html Monotone, a distributed version control system that uses SHA-1 signatures as version identifiers. I actually liked this idea very much, and decided to use it in Archipel.
- http://wiki.gnuarch.org/ Arch, a distributed version control system that can use FTP or HTTP for communicating patches. I liked its flexibility and shell integration, but found it complicated and intrusive.
- http://abridgegame.org/darcs/ DARCS, a version control system which uses different types of deltas. For instances, there is a delta for replacing the occurences of a string in text files. This is where I realized that version control deltas were simply serializable and undoable commands.
- http://prcs.sf.net PRCS, a version control system which I used and really liked for its cleanliness and simplicity. Sadly, it does not support distribution, FTP or HTTP repository checkin and checkout, or binary files. Otherwise, it would be just great.
Here are the software used by Archipel:
- ArchitpelQuickStart? (a user guide and reference manual to quicly start using Archipel)
- ArchipelQuickStart (a user guide and reference manual to quicly start using Archipel)
- ArchipelPrinciples (sums up the basic principle on which Arhicpel is built)
- ArchipelTerminology (sums up the specific terms used in Archipel )
- ArchitpelQuickStart? (a user guide and reference manual to quicly start using Archipel)
2. Quick start
This section will guide you through the steps involved in a basic usage of Archipel. You will learn how to create and setup an Archipel project, how to track changes, commit changes, checkout particular versions and distribute your changes to other developers.
Whenever you encounter a term that might be difficult to understand, you can refere to the ArchipelTerminology.
Intermediate usage
2.1 Creating a project
Annotating files and directories
Creating a new project in archipel is dead simple, you just have to cd to the directory you want to put under version control, and type
archipel annotate [file|directories] [name] [value]
Setting up filters
archipel create [name]
archipel filter create [name]
where name is your project name. Typing archipel create MyProject? will create a MyProject?.archipel file in the current directory.
or
Alternatively, if you do not want to put the current directory under control, you can specify explicitely another directory with
archipel filter edit [name]
achipel create [name] [directory]
or
where directory is the path to the directory (your project directory) that you want to put under version control. In this case, the project file will also be created in the designated directory.
archipel filter remove [name]
Once the project file is created, you can issue any other archipel command as long as you type them in the directory containing the project file, or in any of its subdirectories.
or
2.2 Assigning a repository
archipel filter list
When you create a new Archipel project, the project needs a place to store the versionning information. This place is caleld the repository.
Advanced usage
A repository is simply a directory on your local filesystem that holds all the information needed to restore previous states of your project.
Creating branches
By default, the project repository is located in your project root directory, and is name MyProject?.repostory, where you replace MyProject? by your actual project name. If the ARCHIPEL_REPOSITORY environment variable is defined, the repository will instead be located at the value of this variable. Note that a directory can be shared by multiple projects.
Merging branches
To determine the project that was assigned to your project, you can type the following command:
Subscribing to a branch
archipel repository status
Organising branches
If you want to specify another location for your repository, you can type the following command:
References
archipel repository set [location]
ArchipelDeltas, presents a list of current deltas available in Archipel.
which will set the repository to be the given location. If the given repository does not exist, it will be created, otherwise the existing repository will be used. Once that a project was created an assigned a repository, you can put files and directories under version control.
Here is a short list of papers which participated in the development of Archipel :
Note that you can change the repository location at any time during your project lifecycle. In some cases, Archipel will move or copy information from your old repository to the new one. Also, it you can note that repositories are not created until first commit, so that changing your repository location will not spoil your filesystem at project creation.
- http://citeseer.ist.psu.edu/westfechtel00layered.html A Layered Architecture for Uniform Version Management, is the paper that motivated me to start working on Archipel
- http://www.idt.unit.no/~bjornmu/thesis/thesis.html Versioning in a Software Engineering Database - the Change Oriented Way, by Bjørn P. Munch, which seems to be one of the original work that allowed the above paper to be written.
- Ragnarok?, an architecture-based software configuration management system. Ragnarok promotes the notion of high level deltas, and offers a different perspective of what SCM can be.
2.3 Putting files and directories under version control
Here are some articles/pages of interest:
By default, Archipel does not track any file in your newly created project. You have to indicate which files you want it to track, using the track command
- http://www.linuxjournal.com/article.php?sid=1237 Diff, Patch and Friends is a Linux Journal article on these widely used tools, also used by Archipel. It also references an http://www.linuxjournal.com/article.php?sid=1250 old article on RCS, which is amusing and let you understand what changed since then.
- Yann Dirson's http://ydirson.free.fr/en/software/scm/vc.txt thoughts on version control
archipel track [file|directory]+
Here is a list of related software:
Conversly, if you do not want to track a file or a directory anymore, you can use the untrack command
- http://www.venge.net/monotone/index.html Monotone, a distributed version control system that uses SHA-1 signatures as version identifiers. I actually liked this idea very much, and decided to use it in Archipel.
- http://wiki.gnuarch.org/ Arch, a distributed version control system that can use FTP or HTTP for communicating patches. I liked its flexibility and shell integration, but found it complicated and intrusive.
- http://abridgegame.org/darcs/ DARCS, a version control system which uses different types of deltas. For instances, there is a delta for replacing the occurences of a string in text files. This is where I realized that version control deltas were simply serializable and undoable commands.
- http://prcs.sf.net PRCS, a version control system which I used and really liked for its cleanliness and simplicity. Sadly, it does not support distribution, FTP or HTTP repository checkin and checkout, or binary files. Otherwise, it would be just great.
archipel untrack [file|directory]+
Here are the software used by Archipel:
When you untrack a file or a directory, you can still re-track it later and keep its history. In most cases, this will be automatically made by archipel.
2.4 Querying projet status
The current project or a particular directory status can be queried by the following command :
archipel status [file|directory]*
which gives the status of all the files in the current project, or you can also type
archipel status .
to know what has changed in the current directory. Note that you can indicate any directory under Archipel control.
The status command ouputs a list of files prefixed by their tracking status:
+for a file which is newly tracked-for a file that will not be tracked anymorefor a file that is already tracked and will continue to be~for untracked files (they are not shown by default)
and content status:
Cfor created fileCpfor copied fileMvfor moved fileRmfor removed fileMfor modified file- Nothing for an unmodified file
Created, copied and moved file all belong to files that are not found in the previous revision of the controlled project. These files were all created, copied or moved since last commit.
Removed files are files that cannot be found anymore in the current project, but were present when the project was last commited.
Modified and unmodified files are both present in the previous and current revisions of the project.
Status also allows:
- To include directories in the status (by default only files are shown)
- To decide which sets (new, changed, moved, etc. are considered as sets) have to be shown
- To use a specific filter to hide or show specific files or directories (like symlinks, or files ending with a specific suffix, etc.)
To get more information, you can type archipel help status.
2.5 Commiting changes
Once your project files are put under version control, you can commit changes that will represent the current state of your project (or at least, parts of it).
To commit changes, simply use the command
archipel commit
which will commit all the changes made to the current project. Your default text editor (from the EDITOR environment variable) will then open, summarizing the changes and asking you to fill in a description. You can also commit changes locally with the following command
archipel commit .
which will only commit changes made to the current directory. You can also specify any location
archipel commit [location]
which will commit changes made only to the given location.
Getting project information
Once you commit changes to the repository, you might want to be able to refer to these changes (or change set) as a whole. To do so, you can use the head command:
archipel head
which will return you the identifier (a 40 character string) identifying the set of changes you've just commited. This identifier also refers to the specific version of your project. When you will want to later retrieve this version (aka. check out), you will need this identifier.
Checking out versions
Publishing a release
Intermediate usage
Annotating files and directories
archipel annotate [file|directories] [name] [value]
Setting up filters
archipel filter create [name]
or
archipel filter edit [name]
or
archipel filter remove [name]
or
archipel filter list
Advanced usage
Creating branches
Merging branches
Subscribing to a branch
Organising branches
References
ArchipelDeltas, presents a list of current deltas available in Archipel.
Here is a short list of papers which participated in the development of Archipel :
- http://citeseer.ist.psu.edu/westfechtel00layered.html A Layered Architecture for Uniform Version Management, is the paper that motivated me to start working on Archipel
- http://www.idt.unit.no/~bjornmu/thesis/thesis.html Versioning in a Software Engineering Database - the Change Oriented Way, by Bjørn P. Munch, which seems to be one of the original work that allowed the above paper to be written.
- Ragnarok?, an architecture-based software configuration management system. Ragnarok promotes the notion of high level deltas, and offers a different perspective of what SCM can be.
Here are some articles/pages of interest:
- http://www.linuxjournal.com/article.php?sid=1237 Diff, Patch and Friends is a Linux Journal article on these widely used tools, also used by Archipel. It also references an http://www.linuxjournal.com/article.php?sid=1250 old article on RCS, which is amusing and let you understand what changed since then.
- Yann Dirson's http://ydirson.free.fr/en/software/scm/vc.txt thoughts on version control
Here is a list of related software:
- http://www.venge.net/monotone/index.html Monotone, a distributed version control system that uses SHA-1 signatures as version identifiers. I actually liked this idea very much, and decided to use it in Archipel.
- http://wiki.gnuarch.org/ Arch, a distributed version control system that can use FTP or HTTP for communicating patches. I liked its flexibility and shell integration, but found it complicated and intrusive.
- http://abridgegame.org/darcs/ DARCS, a version control system which uses different types of deltas. For instances, there is a delta for replacing the occurences of a string in text files. This is where I realized that version control deltas were simply serializable and undoable commands.
- http://prcs.sf.net PRCS, a version control system which I used and really liked for its cleanliness and simplicity. Sadly, it does not support distribution, FTP or HTTP repository checkin and checkout, or binary files. Otherwise, it would be just great.
Here are the software used by Archipel:
Archipel Version Control
Archipel Software Configuration Management
To sum up Archipel goals:
Related documents:
- Provide a simple, powerful, modern revision control system that fits open-source distributed development
- Provide a flexible framework on which advanced software configuration management can be built.
1. General document conventions
To sum up Archipel goals:
This sections presents Archipel command-line usage. Every example is given using a relatively simple syntax:
- Provide a simple, powerful, modern revision control system that fits open-source distributed development
- Provide a flexible framework on which advanced software configuration management can be built.
archipel [command] [arguments]
1. General document conventions
Where something between is a value of the given type. This "something" can be assigned a cardinality. For instance,
@ and @
This sections presents Archipel command-line usage. Every example is given using a relatively simple syntax:
archipel status [file|directory]+
archipel [command] [arguments]
indicates that the status command of Archipel can take 1 to many argumens of type file or directory, which are the two basic types (with litteral, meaning a text string) that Archipel commands can take.
Where something between is a value of the given type. This "something" can be assigned a cardinality. For instance,
@ and @
2. Quick start
archipel status [file|directory]+
This section will guide you through the steps involved in a basic usage of Archipel. You will learn how to create and setup an Archipel project, how to track changes, commit changes, checkout particular versions and distribute your changes to other developers.
indicates that the status command of Archipel can take 1 to many argumens of type file or directory, which are the two basic types (with litteral, meaning a text string) that Archipel commands can take.
Whenever you encounter a term that might be difficult to understand, you can refere to the ArchipelTerminology.
2. Quick start
2.1 Creating a project
This section will guide you through the steps involved in a basic usage of Archipel. You will learn how to create and setup an Archipel project, how to track changes, commit changes, checkout particular versions and distribute your changes to other developers.
Creating a new project in archipel is dead simple, you just have to cd to the directory you want to put under version control, and type
Whenever you encounter a term that might be difficult to understand, you can refere to the ArchipelTerminology.
archipel create [name]
2.1 Creating a project
where name is your project name. Typing archipel create MyProject? will create a MyProject?.archipel file in the current directory.
Creating a new project in archipel is dead simple, you just have to cd to the directory you want to put under version control, and type
Alternatively, if you do not want to put the current directory under control, you can specify explicitely another directory with
archipel create [name]
achipel create [name] [directory]
where name is your project name. Typing archipel create MyProject? will create a MyProject?.archipel file in the current directory.
where directory is the path to the directory (your project directory) that you want to put under version control. In this case, the project file will also be created in the designated directory.
Alternatively, if you do not want to put the current directory under control, you can specify explicitely another directory with
Once the project file is created, you can issue any other archipel command as long as you type them in the directory containing the project file, or in any of its subdirectories.
achipel create [name] [directory]
2.2 Assigning a repository
where directory is the path to the directory (your project directory) that you want to put under version control. In this case, the project file will also be created in the designated directory.
When you create a new Archipel project, the project needs a place to store the versionning information. This place is caleld the repository.
Once the project file is created, you can issue any other archipel command as long as you type them in the directory containing the project file, or in any of its subdirectories.
A repository is simply a directory on your local filesystem that holds all the information needed to restore previous states of your project.
2.2 Assigning a repository
By default, the project repository is located in your project root directory, and is name MyProject?.repostory, where you replace MyProject? by your actual project name. If the ARCHIPEL_REPOSITORY environment variable is defined, the repository will instead be located at the value of this variable. Note that a directory can be shared by multiple projects.
When you create a new Archipel project, the project needs a place to store the versionning information. This place is caleld the repository.
To determine the project that was assigned to your project, you can type the following command:
A repository is simply a directory on your local filesystem that holds all the information needed to restore previous states of your project.
archipel repository status
By default, the project repository is located in your project root directory, and is name MyProject?.repostory, where you replace MyProject? by your actual project name. If the ARCHIPEL_REPOSITORY environment variable is defined, the repository will instead be located at the value of this variable. Note that a directory can be shared by multiple projects.
If you want to specify another location for your repository, you can type the following command:
To determine the project that was assigned to your project, you can type the following command:
archipel repository set [location]
archipel repository status
which will set the repository to be the given location. If the given repository does not exist, it will be created, otherwise the existing repository will be used. Once that a project was created an assigned a repository, you can put files and directories under version control.
If you want to specify another location for your repository, you can type the following command:
Note that you can change the repository location at any time during your project lifecycle. In some cases, Archipel will move or copy information from your old repository to the new one. Also, it you can note that repositories are not created until first commit, so that changing your repository location will not spoil your filesystem at project creation.
archipel repository set [location]
2.3 Putting files and directories under version control
which will set the repository to be the given location. If the given repository does not exist, it will be created, otherwise the existing repository will be used. Once that a project was created an assigned a repository, you can put files and directories under version control.
By default, Archipel does not track any file in your newly created project. You have to indicate which files you want it to track, using the track command
Note that you can change the repository location at any time during your project lifecycle. In some cases, Archipel will move or copy information from your old repository to the new one. Also, it you can note that repositories are not created until first commit, so that changing your repository location will not spoil your filesystem at project creation.
archipel track [file|directory]+
2.3 Putting files and directories under version control
Conversly, if you do not want to track a file or a directory anymore, you can use the untrack command
By default, Archipel does not track any file in your newly created project. You have to indicate which files you want it to track, using the track command
archipel untrack [file|directory]+
archipel track [file|directory]+
When you untrack a file or a directory, you can still re-track it later and keep its history. In most cases, this will be automatically made by archipel.
Conversly, if you do not want to track a file or a directory anymore, you can use the untrack command
2.4 Querying projet status
archipel untrack [file|directory]+
The current project or a particular directory status can be queried by the following command :
When you untrack a file or a directory, you can still re-track it later and keep its history. In most cases, this will be automatically made by archipel.
archipel status [file|directory]*
2.4 Querying projet status
which gives the status of all the files in the current project, or you can also type
The current project or a particular directory status can be queried by the following command :
archipel status .
archipel status [file|directory]*
to know what has changed in the current directory. Note that you can indicate any directory under Archipel control.
which gives the status of all the files in the current project, or you can also type
The status command ouputs a list of files prefixed by their tracking status:
archipel status .
to know what has changed in the current directory. Note that you can indicate any directory under Archipel control.
The status command ouputs a list of files prefixed by their tracking status:
From Archipel's perspective, version control is simply a generalization of an undo mechanism, where deltas are simply serializable undoable commands.
From Archipel's perspective, version control is simply a generalization of an undo mechanism, where deltas are simply serializable undoable commands. In this respect, Archipel also aims at providing a flexible framework for building specific version models.
- Repository is stored in a queryable RDF database
- Deltas (changes) are represented in an OO way, which allows user to create new deltas, specific to their version model.
1. General document conventions
To sum up Archipel goals:
This sections presents Archipel command-line usage. Every example is given using a relatively simple syntax:
- Provide a simple, powerful, modern revision control system that fits open-source distributed development
- Provide a flexible framework on which advanced software configuration management can be built.
archipel [command] [arguments]
More details can be found in FromRCStoSCM?.
Where something between is a value of the given type. This "something" can be assigned a cardinality. For instance,
@ and @
1. General document conventions
archipel status [file|directory]+
This sections presents Archipel command-line usage. Every example is given using a relatively simple syntax:
indicates that the status command of Archipel can take 1 to many argumens of type file or directory, which are the two basic types (with litteral, meaning a text string) that Archipel commands can take.
archipel [command] [arguments]
2. Quick start
Where something between is a value of the given type. This "something" can be assigned a cardinality. For instance,
@ and @
This section will guide you through the steps involved in a basic usage of Archipel. You will learn how to create and setup an Archipel project, how to track changes, commit changes, checkout particular versions and distribute your changes to other developers.
archipel status [file|directory]+
Whenever you encounter a term that might be difficult to understand, you can refere to the ArchipelTerminology.
indicates that the status command of Archipel can take 1 to many argumens of type file or directory, which are the two basic types (with litteral, meaning a text string) that Archipel commands can take.
2.1 Creating a project
2. Quick start
Creating a new project in archipel is dead simple, you just have to cd to the directory you want to put under version control, and type
This section will guide you through the steps involved in a basic usage of Archipel. You will learn how to create and setup an Archipel project, how to track changes, commit changes, checkout particular versions and distribute your changes to other developers.
archipel create [name]
Whenever you encounter a term that might be difficult to understand, you can refere to the ArchipelTerminology.
where name is your project name. Typing archipel create MyProject? will create a MyProject?.archipel file in the current directory.
2.1 Creating a project
Alternatively, if you do not want to put the current directory under control, you can specify explicitely another directory with
Creating a new project in archipel is dead simple, you just have to cd to the directory you want to put under version control, and type
achipel create [name] [directory]
archipel create [name]
where directory is the path to the directory (your project directory) that you want to put under version control. In this case, the project file will also be created in the designated directory.
where name is your project name. Typing archipel create MyProject? will create a MyProject?.archipel file in the current directory.
Once the project file is created, you can issue any other archipel command as long as you type them in the directory containing the project file, or in any of its subdirectories.
Alternatively, if you do not want to put the current directory under control, you can specify explicitely another directory with
2.2 Assigning a repository
achipel create [name] [directory]
When you create a new Archipel project, the project needs a place to store the versionning information. This place is caleld the repository.
where directory is the path to the directory (your project directory) that you want to put under version control. In this case, the project file will also be created in the designated directory.
A repository is simply a directory on your local filesystem that holds all the information needed to restore previous states of your project.
Once the project file is created, you can issue any other archipel command as long as you type them in the directory containing the project file, or in any of its subdirectories.
By default, the project repository is located in your project root directory, and is name MyProject?.repostory, where you replace MyProject? by your actual project name. If the ARCHIPEL_REPOSITORY environment variable is defined, the repository will instead be located at the value of this variable. Note that a directory can be shared by multiple projects.
2.2 Assigning a repository
To determine the project that was assigned to your project, you can type the following command:
When you create a new Archipel project, the project needs a place to store the versionning information. This place is caleld the repository.
archipel repository status
A repository is simply a directory on your local filesystem that holds all the information needed to restore previous states of your project.
If you want to specify another location for your repository, you can type the following command:
By default, the project repository is located in your project root directory, and is name MyProject?.repostory, where you replace MyProject? by your actual project name. If the ARCHIPEL_REPOSITORY environment variable is defined, the repository will instead be located at the value of this variable. Note that a directory can be shared by multiple projects.
archipel repository set [location]
To determine the project that was assigned to your project, you can type the following command:
which will set the repository to be the given location. If the given repository does not exist, it will be created, otherwise the existing repository will be used. Once that a project was created an assigned a repository, you can put files and directories under version control.
archipel repository status
Note that you can change the repository location at any time during your project lifecycle. In some cases, Archipel will move or copy information from your old repository to the new one. Also, it you can note that repositories are not created until first commit, so that changing your repository location will not spoil your filesystem at project creation.
If you want to specify another location for your repository, you can type the following command:
2.3 Putting files and directories under version control
archipel repository set [location]
By default, Archipel does not track any file in your newly created project. You have to indicate which files you want it to track, using the track command
which will set the repository to be the given location. If the given repository does not exist, it will be created, otherwise the existing repository will be used. Once that a project was created an assigned a repository, you can put files and directories under version control.
archipel track [file|directory]+
Note that you can change the repository location at any time during your project lifecycle. In some cases, Archipel will move or copy information from your old repository to the new one. Also, it you can note that repositories are not created until first commit, so that changing your repository location will not spoil your filesystem at project creation.
Conversly, if you do not want to track a file or a directory anymore, you can use the untrack command
2.3 Putting files and directories under version control
archipel untrack [file|directory]+
By default, Archipel does not track any file in your newly created project. You have to indicate which files you want it to track, using the track command
When you untrack a file or a directory, you can still re-track it later and keep its history. In most cases, this will be automatically made by archipel.
archipel track [file|directory]+
2.4 Querying projet status
Conversly, if you do not want to track a file or a directory anymore, you can use the untrack command
The current project or a particular directory status can be queried by the following command :
archipel untrack [file|directory]+
archipel status [file|directory]*
When you untrack a file or a directory, you can still re-track it later and keep its history. In most cases, this will be automatically made by archipel.
which gives the status of all the files in the current project, or you can also type
2.4 Querying projet status
archipel status .
The current project or a particular directory status can be queried by the following command :
to know what has changed in the current directory. Note that you can indicate any directory under Archipel control.
archipel status [file|directory]*
The status command ouputs a list of files prefixed by their tracking status:
which gives the status of all the files in the current project, or you can also type
+for a file which is newly tracked-for a file that will not be tracked anymore|for a file that is already tracked and will continue to be- Nothing for untracked files (they are not shown by default)
archipel status .
and content status:
to know what has changed in the current directory. Note that you can indicate any directory under Archipel control.
Cfor created fileCpfor copied fileMvfor moved fileRmfor removed fileMfor modified file- Nothing for an unmodified file
The status command ouputs a list of files prefixed by their tracking status:
Created, copied and moved file all belong to files that are not found in the previous revision of the controlled project. These files were all created, copied or moved since last commit.
+for a file which is newly tracked-for a file that will not be tracked anymorefor a file that is already tracked and will continue to be~for untracked files (they are not shown by default)
Removed files are files that cannot be found anymore in the current project, but were present when the project was last commited.
and content status:
Modified and unmodified files are both present in the previous and current revisions of the project.
Cfor created fileCpfor copied fileMvfor moved fileRmfor removed fileMfor modified file- Nothing for an unmodified file
Status also allows:
Created, copied and moved file all belong to files that are not found in the previous revision of the controlled project. These files were all created, copied or moved since last commit.
- To include directories in the status (by default only files are shown)
- To decide which sets (new, changed, moved, etc. are considered as sets) have to be shown
- To use a specific filter to hide or show specific files or directories (like symlinks, or files ending with a specific suffix, etc.)
Removed files are files that cannot be found anymore in the current project, but were present when the project was last commited.
To get more information, you can type archipel help status.
Modified and unmodified files are both present in the previous and current revisions of the project.
2.5 Commiting changes
Status also allows:
Once your project files are put under version control, you can commit changes that will represent the current state of your project (or at least, parts of it).
- To include directories in the status (by default only files are shown)
- To decide which sets (new, changed, moved, etc. are considered as sets) have to be shown
- To use a specific filter to hide or show specific files or directories (like symlinks, or files ending with a specific suffix, etc.)
To commit changes, simply use the command
To get more information, you can type archipel help status.
archipel commit
2.5 Commiting changes
which will commit all the changes made to the current project. Your default text editor (from the EDITOR environment variable) will then open, summarizing the changes and asking you to fill in a description. You can also commit changes locally with the following command
Once your project files are put under version control, you can commit changes that will represent the current state of your project (or at least, parts of it).
archipel commit .
To commit changes, simply use the command
which will only commit changes made to the current directory. You can also specify any location
archipel commit
archipel commit [location]
which will commit all the changes made to the current project. Your default text editor (from the EDITOR environment variable) will then open, summarizing the changes and asking you to fill in a description. You can also commit changes locally with the following command
which will commit changes made only to the given location.
archipel commit .
Checking out versions
which will only commit changes made to the current directory. You can also specify any location
Publishing a release
archipel commit [location]
Intermediate usage
which will commit changes made only to the given location.
Annotating files and directories
Getting project information
archipel annotate [file|directories] [name] [value]
Setting up filters
Once you commit changes to the repository, you might want to be able to refer to these changes (or change set) as a whole. To do so, you can use the head command:
archipel filter create [name]
archipel head
or
which will return you the identifier (a 40 character string) identifying the set of changes you've just commited. This identifier also refers to the specific version of your project. When you will want to later retrieve this version (aka. check out), you will need this identifier.
archipel filter edit [name]
or
Checking out versions
archipel filter remove [name]
Publishing a release
or
Intermediate usage
archipel filter list
Annotating files and directories
Advanced usage
archipel annotate [file|directories] [name] [value]
Setting up filters
Creating branches
archipel filter create [name]
Merging branches
or
Subscribing to a branch
archipel filter edit [name]
Organising branches
or
References
archipel filter remove [name]
ArchipelDeltas, presents a list of current deltas available in Archipel.
or
Here is a short list of papers which participated in the development of Archipel :
archipel filter list
- http://citeseer.ist.psu.edu/westfechtel00layered.html A Layered Architecture for Uniform Version Management, is the paper that motivated me to start working on Archipel
- http://www.idt.unit.no/~bjornmu/thesis/thesis.html Versioning in a Software Engineering Database - the Change Oriented Way, by Bjørn P. Munch, which seems to be one of the original work that allowed the above paper to be written.
Advanced usage
Here are some articles/pages of interest:
Creating branches
- http://www.linuxjournal.com/article.php?sid=1237 Diff, Patch and Friends is a Linux Journal article on these widely used tools, also used by Archipel. It also references an http://www.linuxjournal.com/article.php?sid=1250 old article on RCS, which is amusing and let you understand what changed since then.
- Yann Dirson's http://ydirson.free.fr/en/software/scm/vc.txt thoughts on version control
Merging branches
Here is a list of related software:
Subscribing to a branch
- http://www.venge.net/monotone/index.html Monotone, a distributed version control system that uses SHA-1 signatures as version identifiers. I actually liked this idea very much, and decided to use it in Archipel.
- http://wiki.gnuarch.org/ Arch, a distributed version control system that can use FTP or HTTP for communicating patches. I liked its flexibility and shell integration, but found it complicated and intrusive.
- http://abridgegame.org/darcs/ DARCS, a version control system which uses different types of deltas. For instances, there is a delta for replacing the occurences of a string in text files. This is where I realized that version control deltas were simply serializable and undoable commands.
- http://prcs.sf.net PRCS, a version control system which I used and really liked for its cleanliness and simplicity. Sadly, it does not support distribution, FTP or HTTP repository checkin and checkout, or binary files. Otherwise, it would be just great.
Organising branches
Here are the software used by Archipel:
References
ArchipelDeltas, presents a list of current deltas available in Archipel.
Here is a short list of papers which participated in the development of Archipel :
- http://citeseer.ist.psu.edu/westfechtel00layered.html A Layered Architecture for Uniform Version Management, is the paper that motivated me to start working on Archipel
- http://www.idt.unit.no/~bjornmu/thesis/thesis.html Versioning in a Software Engineering Database - the Change Oriented Way, by Bjørn P. Munch, which seems to be one of the original work that allowed the above paper to be written.
- Ragnarok?, an architecture-based software configuration management system. Ragnarok promotes the notion of high level deltas, and offers a different perspective of what SCM can be.
Here are some articles/pages of interest:
- http://www.linuxjournal.com/article.php?sid=1237 Diff, Patch and Friends is a Linux Journal article on these widely used tools, also used by Archipel. It also references an http://www.linuxjournal.com/article.php?sid=1250 old article on RCS, which is amusing and let you understand what changed since then.
- Yann Dirson's http://ydirson.free.fr/en/software/scm/vc.txt thoughts on version control
Here is a list of related software:
- http://www.venge.net/monotone/index.html Monotone, a distributed version control system that uses SHA-1 signatures as version identifiers. I actually liked this idea very much, and decided to use it in Archipel.
- http://wiki.gnuarch.org/ Arch, a distributed version control system that can use FTP or HTTP for communicating patches. I liked its flexibility and shell integration, but found it complicated and intrusive.
- http://abridgegame.org/darcs/ DARCS, a version control system which uses different types of deltas. For instances, there is a delta for replacing the occurences of a string in text files. This is where I realized that version control deltas were simply serializable and undoable commands.
- http://prcs.sf.net PRCS, a version control system which I used and really liked for its cleanliness and simplicity. Sadly, it does not support distribution, FTP or HTTP repository checkin and checkout, or binary files. Otherwise, it would be just great.
Here are the software used by Archipel:
where directory is the path where the Archipel project file will be created.
where directory is the path to the directory (your project directory) that you want to put under version control. In this case, the project file will also be created in the designated directory.
Note that you can change the repository location at any time during your project lifecycle. In some cases, Archipel will move or copy information from your old repository to the new one.
Note that you can change the repository location at any time during your project lifecycle. In some cases, Archipel will move or copy information from your old repository to the new one. Also, it you can note that repositories are not created until first commit, so that changing your repository location will not spoil your filesystem at project creation.
When you create a new Archipel project, it has to be associated to a repository that will store the evolution of your project files.
When you create a new Archipel project, the project needs a place to store the versionning information. This place is caleld the repository.
By default, a project is not associated to any repository. If the ARCHIPEL_REPOSITORY environment variable is defined, the content of this variable is used to indicate the location of the repository to use for newly created projects.
By default, the project repository is located in your project root directory, and is name MyProject?.repostory, where you replace MyProject? by your actual project name. If the ARCHIPEL_REPOSITORY environment variable is defined, the repository will instead be located at the value of this variable. Note that a directory can be shared by multiple projects.
To determine if your project has already a repository, you can use the command:
To determine the project that was assigned to your project, you can type the following command:
this tells you if the current project was assigned a repository, in which case the repository location is returned. If the project has no directory, you can assign one by using the command
If you want to specify another location for your repository, you can type the following command:
Note that you can change the repository location at any time during your project lifecycle. In some cases, Archipel will move or copy information from your old repository to the new one.
2.1 Creating a project
This section will guide you through the steps involved in a basic usage of Archipel. You will learn how to create and setup an Archipel project, how to track changes, commit changes, checkout particular versions and distribute your changes to other developers.
Creating a new project in archipel is dead simple, you just have to cd to the directory you want to put under version control, and type
Whenever you encounter a term that might be difficult to understand, you can refere to the ArchipelTerminology.
archipel create [name]
2.1 Creating a project
where name is your project name. Typing archipel create MyProject? will create a MyProject?.archipel file in the current directory.
Creating a new project in archipel is dead simple, you just have to cd to the directory you want to put under version control, and type
Alternatively, if you do not want to put the current directory under control, you can specify explicitely another directory with
archipel create [name]
achipel create [name] [directory]
where name is your project name. Typing archipel create MyProject? will create a MyProject?.archipel file in the current directory.
where directory is the path where the Archipel project file will be created.
Alternatively, if you do not want to put the current directory under control, you can specify explicitely another directory with
Once the project file is created, you can issue any other archipel command as long as you type them in the directory containing the project file, or in any of its subdirectories.
achipel create [name] [directory]
2.2 Assigning a repository
where directory is the path where the Archipel project file will be created.
When you create a new Archipel project, it has to be associated to a repository that will store the evolution of your project files.
Once the project file is created, you can issue any other archipel command as long as you type them in the directory containing the project file, or in any of its subdirectories.
A repository is simply a directory on your local filesystem that holds all the information needed to restore previous states of your project.
2.2 Assigning a repository
By default, a project is not associated to any repository. If the ARCHIPEL_REPOSITORY environment variable is defined, the content of this variable is used to indicate the location of the repository to use for newly created projects.
When you create a new Archipel project, it has to be associated to a repository that will store the evolution of your project files.
To determine if your project has already a repository, you can use the command:
A repository is simply a directory on your local filesystem that holds all the information needed to restore previous states of your project.
archipel repository status
By default, a project is not associated to any repository. If the ARCHIPEL_REPOSITORY environment variable is defined, the content of this variable is used to indicate the location of the repository to use for newly created projects.
this tells you if the current project was assigned a repository, in which case the repository location is returned. If the project has no directory, you can assign one by using the command
To determine if your project has already a repository, you can use the command:
archipel repository set [location]
archipel repository status
which will set the repository to be the given location. If the given repository does not exist, it will be created, otherwise the existing repository will be used. Once that a project was created an assigned a repository, you can put files and directories under version control.
this tells you if the current project was assigned a repository, in which case the repository location is returned. If the project has no directory, you can assign one by using the command
2.3 Putting files and directories under version control
archipel repository set [location]
By default, Archipel does not track any file in your newly created project. You have to indicate which files you want it to track, using the track command
which will set the repository to be the given location. If the given repository does not exist, it will be created, otherwise the existing repository will be used. Once that a project was created an assigned a repository, you can put files and directories under version control.
archipel track [file|directory]+
2.3 Putting files and directories under version control
Conversly, if you do not want to track a file or a directory anymore, you can use the untrack command
By default, Archipel does not track any file in your newly created project. You have to indicate which files you want it to track, using the track command
archipel untrack [file|directory]+
archipel track [file|directory]+
When you untrack a file or a directory, you can still re-track it later and keep its history. In most cases, this will be automatically made by archipel.
Conversly, if you do not want to track a file or a directory anymore, you can use the untrack command
2.4 Querying projet status
archipel untrack [file|directory]+
The current project or a particular directory status can be queried by the following command :
When you untrack a file or a directory, you can still re-track it later and keep its history. In most cases, this will be automatically made by archipel.
archipel status [file|directory]*
2.4 Querying projet status
which gives the status of all the files in the current project, or you can also type
The current project or a particular directory status can be queried by the following command :
archipel status .
archipel status [file|directory]*
to know what has changed in the current directory. Note that you can indicate any directory under Archipel control.
which gives the status of all the files in the current project, or you can also type
The status command ouputs a list of files prefixed by their tracking status:
archipel status .
to know what has changed in the current directory. Note that you can indicate any directory under Archipel control.
The status command ouputs a list of files prefixed by their tracking status:
General document conventions
1. General document conventions
Quick start
2. Quick start
Creating a project
2.1 Creating a project
Assigning a repository
2.2 Assigning a repository
this tells you if the current project was assigned a repository, in which case the repository location is returned.
this tells you if the current project was assigned a repository, in which case the repository location is returned. If the project has no directory, you can assign one by using the command
If the project has no directory, you can assign one by using the command
which will set the repository to be the given location. If the given repository does not exist, it will be created, otherwise the existing repository will be used.
which will set the repository to be the given location. If the given repository does not exist, it will be created, otherwise the existing repository will be used. Once that a project was created an assigned a repository, you can put files and directories under version control.
Once that a project was created an assigned a repository, you can put files and directories under version control.
2.3 Putting files and directories under version control
Putting files and directories under version control
Querying projet status
2.4 Querying projet status
Commiting changes
2.5 Commiting changes
which will commit all the changes made to the current project. Your default text editor (from the EDITOR environment variable) will then open, summarizing the changes and asking you to fill in a description.
which will commit all the changes made to the current project. Your default text editor (from the EDITOR environment variable) will then open, summarizing the changes and asking you to fill in a description. You can also commit changes locally with the following command
You can commit changes locally with the following command
which will commit changes made to the given location.
which will commit changes made only to the given location.
Putting files and directories under version control
Assigning a repository
By default, Archipel does not track any file in your newly created project. You have to indicate which files you want it to track, using the track command
When you create a new Archipel project, it has to be associated to a repository that will store the evolution of your project files.
archipel track [file|directory]+
A repository is simply a directory on your local filesystem that holds all the information needed to restore previous states of your project.
Conversly, if you do not want to track a file or a directory anymore, you can use the untrack command
By default, a project is not associated to any repository. If the ARCHIPEL_REPOSITORY environment variable is defined, the content of this variable is used to indicate the location of the repository to use for newly created projects.
archipel untrack [file|directory]+
To determine if your project has already a repository, you can use the command:
When you untrack a file or a directory, you can still re-track it later and keep its history. In most cases, this will be automatically made by archipel.
archipel repository status
Querying projet status
this tells you if the current project was assigned a repository, in which case the repository location is returned.
The current project or a particular directory status can be queried by the following command :
If the project has no directory, you can assign one by using the command
archipel status [file|directory]*
archipel repository set [location]
which gives the status of all the files in the current project, or you can also type
which will set the repository to be the given location. If the given repository does not exist, it will be created, otherwise the existing repository will be used.
archipel status .
Once that a project was created an assigned a repository, you can put files and directories under version control.
to know what has changed in the current directory. Note that you can indicate any directory under Archipel control.
Putting files and directories under version control
The status command ouputs a list of files prefixed by their tracking status:
By default, Archipel does not track any file in your newly created project. You have to indicate which files you want it to track, using the track command
+for a file which is newly tracked-for a file that will not be tracked anymore|for a file that is already tracked and will continue to be- Nothing for untracked files (they are not shown by default)
archipel track [file|directory]+
and content status:
Conversly, if you do not want to track a file or a directory anymore, you can use the untrack command
Cfor created fileCpfor copied fileMvfor moved fileRmfor removed fileMfor modified file- Nothing for an unmodified file
archipel untrack [file|directory]+
Created, copied and moved file all belong to files that are not found in the previous revision of the controlled project. These files were all created, copied or moved since last commit.
When you untrack a file or a directory, you can still re-track it later and keep its history. In most cases, this will be automatically made by archipel.
Removed files are files that cannot be found anymore in the current project, but were present when the project was last commited.
Querying projet status
Modified and unmodified files are both present in the previous and current revisions of the project.
The current project or a particular directory status can be queried by the following command :
Status also allows:
archipel status [file|directory]*
- To include directories in the status (by default only files are shown)
- To decide which sets (new, changed, moved, etc. are considered as sets) have to be shown
- To use a specific filter to hide or show specific files or directories (like symlinks, or files ending with a specific suffix, etc.)
which gives the status of all the files in the current project, or you can also type
To get more information, you can type archipel help status.
archipel status .
Commiting changes
to know what has changed in the current directory. Note that you can indicate any directory under Archipel control.
Once change
The status command ouputs a list of files prefixed by their tracking status:
Checking out versions
+for a file which is newly tracked-for a file that will not be tracked anymore|for a file that is already tracked and will continue to be- Nothing for untracked files (they are not shown by default)
Publishing a release
and content status:
Intermediate usage
Cfor created fileCpfor copied fileMvfor moved fileRmfor removed fileMfor modified file- Nothing for an unmodified file
Annotating files and directories
Created, copied and moved file all belong to files that are not found in the previous revision of the controlled project. These files were all created, copied or moved since last commit.
archipel annotate [file|directories] [name] [value]
Setting up filters
Removed files are files that cannot be found anymore in the current project, but were present when the project was last commited.
archipel filter create [name]
Modified and unmodified files are both present in the previous and current revisions of the project.
or
Status also allows:
archipel filter edit [name]
- To include directories in the status (by default only files are shown)
- To decide which sets (new, changed, moved, etc. are considered as sets) have to be shown
- To use a specific filter to hide or show specific files or directories (like symlinks, or files ending with a specific suffix, etc.)
or
To get more information, you can type archipel help status.
archipel filter remove [name]
Commiting changes
or
Once your project files are put under version control, you can commit changes that will represent the current state of your project (or at least, parts of it).
archipel filter list
To commit changes, simply use the command
Advanced usage
archipel commit
Creating branches
which will commit all the changes made to the current project. Your default text editor (from the EDITOR environment variable) will then open, summarizing the changes and asking you to fill in a description.
Merging branches
You can commit changes locally with the following command
Subscribing to a branch
archipel commit .
Organising branches
which will only commit changes made to the current directory. You can also specify any location
References
archipel commit [location]
ArchipelDeltas, presents a list of current deltas available in Archipel.
which will commit changes made to the given location.
Here is a short list of papers which participated in the development of Archipel :
Checking out versions
- http://citeseer.ist.psu.edu/westfechtel00layered.html A Layered Architecture for Uniform Version Management, is the paper that motivated me to start working on Archipel
- http://www.idt.unit.no/~bjornmu/thesis/thesis.html Versioning in a Software Engineering Database - the Change Oriented Way, by Bjørn P. Munch, which seems to be one of the original work that allowed the above paper to be written.
Publishing a release
Here are some articles/pages of interest:
Intermediate usage
- http://www.linuxjournal.com/article.php?sid=1237 Diff, Patch and Friends is a Linux Journal article on these widely used tools, also used by Archipel. It also references an http://www.linuxjournal.com/article.php?sid=1250 old article on RCS, which is amusing and let you understand what changed since then.
- Yann Dirson's http://ydirson.free.fr/en/software/scm/vc.txt thoughts on version control
Annotating files and directories
Here is a list of related software:
archipel annotate [file|directories] [name] [value]
Setting up filters
- http://www.venge.net/monotone/index.html Monotone, a distributed version control system that uses SHA-1 signatures as version identifiers. I actually liked this idea very much, and decided to use it in Archipel.
- http://wiki.gnuarch.org/ Arch, a distributed version control system that can use FTP or HTTP for communicating patches. I liked its flexibility and shell integration, but found it complicated and intrusive.
- http://abridgegame.org/darcs/ DARCS, a version control system which uses different types of deltas. For instances, there is a delta for replacing the occurences of a string in text files. This is where I realized that version control deltas were simply serializable and undoable commands.
- http://prcs.sf.net PRCS, a version control system which I used and really liked for its cleanliness and simplicity. Sadly, it does not support distribution, FTP or HTTP repository checkin and checkout, or binary files. Otherwise, it would be just great.
archipel filter create [name]
Here are the software used by Archipel:
or
archipel filter edit [name]
or
archipel filter remove [name]
or
archipel filter list
Advanced usage
Creating branches
Merging branches
Subscribing to a branch
Organising branches
References
ArchipelDeltas, presents a list of current deltas available in Archipel.
Here is a short list of papers which participated in the development of Archipel :
- http://citeseer.ist.psu.edu/westfechtel00layered.html A Layered Architecture for Uniform Version Management, is the paper that motivated me to start working on Archipel
- http://www.idt.unit.no/~bjornmu/thesis/thesis.html Versioning in a Software Engineering Database - the Change Oriented Way, by Bjørn P. Munch, which seems to be one of the original work that allowed the above paper to be written.
Here are some articles/pages of interest:
- http://www.linuxjournal.com/article.php?sid=1237 Diff, Patch and Friends is a Linux Journal article on these widely used tools, also used by Archipel. It also references an http://www.linuxjournal.com/article.php?sid=1250 old article on RCS, which is amusing and let you understand what changed since then.
- Yann Dirson's http://ydirson.free.fr/en/software/scm/vc.txt thoughts on version control
Here is a list of related software:
- http://www.venge.net/monotone/index.html Monotone, a distributed version control system that uses SHA-1 signatures as version identifiers. I actually liked this idea very much, and decided to use it in Archipel.
- http://wiki.gnuarch.org/ Arch, a distributed version control system that can use FTP or HTTP for communicating patches. I liked its flexibility and shell integration, but found it complicated and intrusive.
- http://abridgegame.org/darcs/ DARCS, a version control system which uses different types of deltas. For instances, there is a delta for replacing the occurences of a string in text files. This is where I realized that version control deltas were simply serializable and undoable commands.
- http://prcs.sf.net PRCS, a version control system which I used and really liked for its cleanliness and simplicity. Sadly, it does not support distribution, FTP or HTTP repository checkin and checkout, or binary files. Otherwise, it would be just great.
Here are the software used by Archipel:
- http://wiki.gnuarch.org/ Arch, a distributed version control system that can use FTP or HTTP for communicating patches. I liked its flexibility and shell integration, but found it complicated and intrusive?
- http://wiki.gnuarch.org/ Arch, a distributed version control system that can use FTP or HTTP for communicating patches. I liked its flexibility and shell integration, but found it complicated and intrusive.
The status command ouputs a list of files prefixed by their status:
The status command ouputs a list of files prefixed by their tracking status:
Nefor new fileChfor changed file
+for a file which is newly tracked-for a file that will not be tracked anymore|for a file that is already tracked and will continue to be- Nothing for untracked files (they are not shown by default)
and content status:
Cfor created fileCpfor copied file
Cpfor copied fileNcfor newly controlled fileRcfor released control on fileUcfor uncontrolled file- Nothing for an unchanged file
Mfor modified file- Nothing for an unmodified file
The first thing to understand is that status lists all file and directories, some are under Archipel control, some are not. Every changed, unchanged, moved, removed, and copied files are under Archipel version control. Newly controlled files have been just put under Archipel version control, while released control files are not under Archipel version control anymore. Uncontrolled are of course not under Archipel version control.
Created, copied and moved file all belong to files that are not found in the previous revision of the controlled project. These files were all created, copied or moved since last commit.
Status also allows:
Removed files are files that cannot be found anymore in the current project, but were present when the project was last commited.
Modified and unmodified files are both present in the previous and current revisions of the project.
Status also allows:
By default, Archipel does not track any file in your newly created project. You have to indicate which files you want it to track, using the track command
or
Conversly, if you do not want to track a file or a directory anymore, you can use the untrack command
When you untrack a file or a directory, you can still re-track it later and keep its history. In most cases, this will be automatically made by archipel.
archipel create [name] [directory]?
Creating a new project in archipel is dead simple, you just have to cd to the directory you want to put under version control, and type
Putting files and directories under version control
archipel create [name]
archipel track [file|directory]+
where name is your project name. Typing archipel create MyProject? will create a MyProject?.archipel file in the current directory.
or
Alternatively, if you do not want to put the current directory under control, you can specify explicitely another directory with
archipel untrack [file|directory]+
achipel create [name] [directory]
Querying projet status
where directory is the path where the Archipel project file will be created.
The current project or a particular directory status can be queried by the following command :
Once the project file is created, you can issue any other archipel command as long as you type them in the directory containing the project file, or in any of its subdirectories.
archipel status [file|directory]*
Putting files and directories under version control
which gives the status of all the files in the current project, or you can also type
archipel track [file|directory]+
archipel status .
or
to know what has changed in the current directory. Note that you can indicate any directory under Archipel control.
archipel untrack [file|directory]+
The status command ouputs a list of files prefixed by their status:
Querying projet status
Nefor new fileChfor changed fileMvfor moved fileRmfor removed fileCpfor copied fileNcfor newly controlled fileRcfor released control on fileUcfor uncontrolled file- Nothing for an unchanged file
The current project or a particular directory status can be queried by the following command :
The first thing to understand is that status lists all file and directories, some are under Archipel control, some are not. Every changed, unchanged, moved, removed, and copied files are under Archipel version control. Newly controlled files have been just put under Archipel version control, while released control files are not under Archipel version control anymore. Uncontrolled are of course not under Archipel version control.
archipel status [file|directory]*
Status also allows:
which gives the status of all the files in the current project, or you can also type
- To include directories in the status (by default only files are shown)
- To decide which sets (new, changed, moved, etc. are considered as sets) have to be shown
- To use a specific filter to hide or show specific files or directories (like symlinks, or files ending with a specific suffix, etc.)
archipel status .
To get more information, you can type archipel help status.
to know what has changed in the current directory. Note that you can indicate any directory under Archipel control.
Commiting changes
The status command ouputs a list of files prefixed by their status:
Once change
Nefor new fileChfor changed fileMvfor moved fileRmfor removed fileCpfor copied fileNcfor newly controlled fileRcfor released control on fileUcfor uncontrolled file- Nothing for an unchanged file
Checking out versions
The first thing to understand is that status lists all file and directories, some are under Archipel control, some are not. Every changed, unchanged, moved, removed, and copied files are under Archipel version control. Newly controlled files have been just put under Archipel version control, while released control files are not under Archipel version control anymore. Uncontrolled are of course not under Archipel version control.
Publishing a release
Status also allows:
Intermediate usage
- To include directories in the status (by default only files are shown)
- To decide which sets (new, changed, moved, etc. are considered as sets) have to be shown
- To use a specific filter to hide or show specific files or directories (like symlinks, or files ending with a specific suffix, etc.)
Annotating files and directories
To get more information, you can type archipel help status.
archipel annotate [file|directories] [name] [value]
Setting up filters
Commiting changes
archipel filter create [name]
Once change
or
Checking out versions
archipel filter edit [name]
Publishing a release
or
Intermediate usage
archipel filter remove [name]
Annotating files and directories
or
archipel annotate [file|directories] [name] [value]
Setting up filters
archipel filter list
archipel filter create [name]
Advanced usage
or
Creating branches
archipel filter edit [name]
Merging branches
or
Subscribing to a branch
archipel filter remove [name]
Organising branches
or
References
archipel filter list
ArchipelDeltas, presents a list of current deltas available in Archipel.
Advanced usage
Here is a short list of papers which participated in the development of Archipel :
Creating branches
- http://citeseer.ist.psu.edu/westfechtel00layered.html A Layered Architecture for Uniform Version Management, is the paper that motivated me to start working on Archipel
- http://www.idt.unit.no/~bjornmu/thesis/thesis.html Versioning in a Software Engineering Database - the Change Oriented Way, by Bjørn P. Munch, which seems to be one of the original work that allowed the above paper to be written.
Merging branches
Here are some articles/pages of interest:
Subscribing to a branch
- http://www.linuxjournal.com/article.php?sid=1237 Diff, Patch and Friends is a Linux Journal article on these widely used tools, also used by Archipel. It also references an http://www.linuxjournal.com/article.php?sid=1250 old article on RCS, which is amusing and let you understand what changed since then.
- Yann Dirson's http://ydirson.free.fr/en/software/scm/vc.txt thoughts on version control
Organising branches
Here is a list of related software:
References
- http://www.venge.net/monotone/index.html Monotone, a distributed version control system that uses SHA-1 signatures as version identifiers. I actually liked this idea very much, and decided to use it in Archipel.
- http://wiki.gnuarch.org/ Arch, a distributed version control system that can use FTP or HTTP for communicating patches. I liked its flexibility and shell integration, but found it complicated and intrusive?
- http://abridgegame.org/darcs/ DARCS, a version control system which uses different types of deltas. For instances, there is a delta for replacing the occurences of a string in text files. This is where I realized that version control deltas were simply serializable and undoable commands.
- http://prcs.sf.net PRCS, a version control system which I used and really liked for its cleanliness and simplicity. Sadly, it does not support distribution, FTP or HTTP repository checkin and checkout, or binary files. Otherwise, it would be just great.
ArchipelDeltas, presents a list of current deltas available in Archipel.
Here are the software used by Archipel:
Here is a short list of papers which participated in the development of Archipel :
- http://citeseer.ist.psu.edu/westfechtel00layered.html A Layered Architecture for Uniform Version Management, is the paper that motivated me to start working on Archipel
- http://www.idt.unit.no/~bjornmu/thesis/thesis.html Versioning in a Software Engineering Database - the Change Oriented Way, by Bjørn P. Munch, which seems to be one of the original work that allowed the above paper to be written.
Here are some articles/pages of interest:
- http://www.linuxjournal.com/article.php?sid=1237 Diff, Patch and Friends is a Linux Journal article on these widely used tools, also used by Archipel. It also references an http://www.linuxjournal.com/article.php?sid=1250 old article on RCS, which is amusing and let you understand what changed since then.
- Yann Dirson's http://ydirson.free.fr/en/software/scm/vc.txt thoughts on version control
Here is a list of related software:
- http://www.venge.net/monotone/index.html Monotone, a distributed version control system that uses SHA-1 signatures as version identifiers. I actually liked this idea very much, and decided to use it in Archipel.
- http://wiki.gnuarch.org/ Arch, a distributed version control system that can use FTP or HTTP for communicating patches. I liked its flexibility and shell integration, but found it complicated and intrusive?
- http://abridgegame.org/darcs/ DARCS, a version control system which uses different types of deltas. For instances, there is a delta for replacing the occurences of a string in text files. This is where I realized that version control deltas were simply serializable and undoable commands.
- http://prcs.sf.net PRCS, a version control system which I used and really liked for its cleanliness and simplicity. Sadly, it does not support distribution, FTP or HTTP repository checkin and checkout, or binary files. Otherwise, it would be just great.
Here are the software used by Archipel:
- ftp://ftp.astron.com/pub/file/ File an ubiquitous utility that can guess a file MIME-type and encoding. http://www.pldaniels.com/filetype/ Filetype is a less-featured and less-mature (and I guess deprecated) alternative.
- ftp://ftp.astron.com/pub/file/ File, an ubiquitous utility that can guess a file MIME-type and encoding. http://www.pldaniels.com/filetype/ Filetype is a less-featured and less-mature (and I guess deprecated) alternative.
- ftp://ftp.astron.com/pub/file/ File an ubiquitous utility that can guess a file MIME-type and encoding.
- ftp://ftp.astron.com/pub/file/ File an ubiquitous utility that can guess a file MIME-type and encoding. http://www.pldaniels.com/filetype/ Filetype is a less-featured and less-mature (and I guess deprecated) alternative.
- http://www.idt.unit.no/~bjornmu/thesis/thesis.html Versioning in a Software Engineering Database - the Change Oriented Way, by Bjørn P. Munch, which seems to be one of the original work that allowed the above paper to be written.
- http://www.idt.unit.no/~bjornmu/thesis/thesis.html Versioning in a Software Engineering Database - the Change Oriented Way, by Bjørn P. Munch, which seems to be one of the original work that allowed the above paper to be written.
Here are some articles/pages of interest:
- http://www.linuxjournal.com/article.php?sid=1237 Diff, Patch and Friends is a Linux Journal article on these widely used tools, also used by Archipel. It also references an http://www.linuxjournal.com/article.php?sid=1250 old article on RCS, which is amusing and let you understand what changed since then.
- http://prcs.sf.net PRCS, a version control system which I used and really liked for its cleanliness and simplicity. Sadly, it does not support distribution, FTP or HTTP repository checkin and checkout, or binary files. Otherwise, it would be just great.
- http://prcs.sf.net PRCS, a version control system which I used and really liked for its cleanliness and simplicity. Sadly, it does not support distribution, FTP or HTTP repository checkin and checkout, or binary files. Otherwise, it would be just great.
Here are the software used by Archipel:
Here are some articles worth reading:
- http://www.linuxjournal.com/article.php?sid=1237 Diff, Patch and Friends is a Linux Journal article on these widely used tools, also used by Archipel. It also references an http://www.linuxjournal.com/article.php?sid=1250 old article on RCS, which is amusing and let you understand what changed since then.
Here are the software used by Archipel:
- http://www.daemonology.net/bsdiff/ BSDiff, apparently the most performant binary diff utility. You can check http://xoomer.virgilio.it/g_pochini/index.html BDiff too, but it seems to rock less.
Here are the software used by Archipel:
- http://www.python.org Python, is the main language in which Archipel is written
- http://www.redland.opensource.ac.uk Redland is the RDF library used to store the deltas
- http://www.gnu.org/software/diffutils/diffutils.html GNU diffutils provide the indispensable
diffandpatchprograms. - http://www.daemonology.net/bsdiff/ BSDiff, apparently the most performant binary diff utility. You can check http://xoomer.virgilio.it/g_pochini/index.html BDiff too, but it seems to rock less.
- ftp://ftp.astron.com/pub/file/ File an ubiquitous utility that can guess a file MIME-type and encoding.
- http://www.linuxjournal.com/article.php?sid=1237 Diff, Patch and Friends is a Linux Journal article on these widely used tools, also used by Archipel.
- http://www.linuxjournal.com/article.php?sid=1237 Diff, Patch and Friends is a Linux Journal article on these widely used tools, also used by Archipel. It also references an http://www.linuxjournal.com/article.php?sid=1250 old article on RCS, which is amusing and let you understand what changed since then.
Here are some articles worth reading:
- http://www.linuxjournal.com/article.php?sid=1237 Diff, Patch and Friends is a Linux Journal article on these widely used tools, also used by Archipel.
Intermediate usage
Advanced usage
archipel annotate [file|directories] [name] [value]
Setting up filters
Creating branches
archipel filter create [name]
Merging branches
or
Subscribing to a branch
archipel filter edit [name]
Organising branches
or
References
archipel filter remove [name]
ArchipelDeltas, presents a list of current deltas available in Archipel.
or
Here is a short list of papers which participated in the development of Archipel :
archipel filter list
- http://citeseer.ist.psu.edu/westfechtel00layered.html A Layered Architecture for Uniform Version Management, is the paper that motivated me to start working on Archipel
Advanced usage
- http://www.idt.unit.no/~bjornmu/thesis/thesis.html Versioning in a Software Engineering Database - the Change Oriented Way, by Bjørn P. Munch, which seems to be one of the original work that allowed the above paper to be written.
Creating branches
- Yann Dirson's http://ydirson.free.fr/en/software/scm/vc.txt thoughts on version control
Merging branches
Here is a list of related software:
Subscribing to a branch
- http://www.venge.net/monotone/index.html Monotone, a distributed version control system that uses SHA-1 signatures as version identifiers. I actually liked this idea very much, and decided to use it in Archipel.
Organising branches
- http://wiki.gnuarch.org/ Arch, a distributed version control system that can use FTP or HTTP for communicating patches. I liked its flexibility and shell integration, but found it complicated and intrusive?
References
- http://abridgegame.org/darcs/ DARCS, a version control system which uses different types of deltas. For instances, there is a delta for replacing the occurences of a string in text files. This is where I realized that version control deltas were simply serializable and undoable commands.
ArchipelDeltas, presents a list of current deltas available in Archipel.
- http://prcs.sf.net PRCS, a version control system which I used and really liked for its cleanliness and simplicity. Sadly, it does not support distribution, FTP or HTTP repository checkin and checkout, or binary files. Otherwise, it would be just great.
Here is a short list of papers which participated in the development of Archipel :
- http://www.daemonology.net/bsdiff/ BSDiff, apparently the most performant binary diff utility. You can check http://xoomer.virgilio.it/g_pochini/index.html BDiff too, but it seems to rock less.
- http://citeseer.ist.psu.edu/westfechtel00layered.html A Layered Architecture for Uniform Version Management, is the paper that motivated me to start working on Archipel
- http://www.idt.unit.no/~bjornmu/thesis/thesis.html Versioning in a Software Engineering Database - the Change Oriented Way, by Bjørn P. Munch, which seems to be one of the original work that allowed the above paper to be written.
- Yann Dirson's http://ydirson.free.fr/en/software/scm/vc.txt thoughts on version control
Here is a list of related software:
- http://www.venge.net/monotone/index.html Monotone, a distributed version control system that uses SHA-1 signatures as version identifiers. I actually liked this idea very much, and decided to use it in Archipel.
- http://wiki.gnuarch.org/ Arch, a distributed version control system that can use FTP or HTTP for communicating patches. I liked its flexibility and shell integration, but found it complicated and intrusive?
- http://abridgegame.org/darcs/ DARCS, a version control system which uses different types of deltas. For instances, there is a delta for replacing the occurences of a string in text files. This is where I realized that version control deltas were simply serializable and undoable commands.
- http://prcs.sf.net PRCS, a version control system which I used and really liked for its cleanliness and simplicity. Sadly, it does not support distribution, FTP or HTTP repository checkin and checkout, or binary files. Otherwise, it would be just great.
- http://www.daemonology.net/bsdiff/ BSDiff, apparently the most performant binary diff utility. You can check http://xoomer.virgilio.it/g_pochini/index.html BDiff too, but it seems to rock less.
archipel <command> <arguments>
archipel [command] [arguments]
Where something between < and > is a value of the given type. This "something" can be assigned a cardinality. For instance,
Where something between is a value of the given type. This "something" can be assigned a cardinality. For instance,
@ and @
archipel status <file|directory>+
archipel status [file|directory]+
Putting files and directories under control
Creating a project
archipel track <file>+
archipel create [name] [directory]?
or
Putting files and directories under version control
archipel untrack <file>+
archipel track [file|directory]+
Project status
or
The current project or a particular directory status can be queried by the following command :
archipel untrack [file|directory]+
archipel status <file>*
Querying projet status
which gives the status of all the files in the current project, or you can also type
The current project or a particular directory status can be queried by the following command :
archipel status .
archipel status [file|directory]*
to know what has changed in the current directory. Note that you can indicate any directory under Archipel control.
which gives the status of all the files in the current project, or you can also type
The status command ouputs a list of files prefixed by their status:
archipel status .
to know what has changed in the current directory. Note that you can indicate any directory under Archipel control.
The status command ouputs a list of files prefixed by their status:
Merging branches
Merging branches
Organising branches
archipel add <file>+
archipel track <file>+
or
archipel untrack <file>+
which gives the status of all the files in the current project, or you can type
which gives the status of all the files in the current project, or you can also type
- Nothing for an unchanged file
Ucfor uncontrolled file- Nothing for an unchanged file
Commiting changes
The first thing to understand is that status lists all file and directories, some are under Archipel control, some are not. Every changed, unchanged, moved, removed, and copied files are under Archipel version control. Newly controlled files have been just put under Archipel version control, while released control files are not under Archipel version control anymore. Uncontrolled are of course not under Archipel version control.
Once change
Status also allows:
Checking out versions
- To include directories in the status (by default only files are shown)
- To decide which sets (new, changed, moved, etc. are considered as sets) have to be shown
- To use a specific filter to hide or show specific files or directories (like symlinks, or files ending with a specific suffix, etc.)
Publishing a release
To get more information, you can type archipel help status.
Annotating files and directories
Commiting changes
Advanced usage
Once change
Creating branches
Checking out versions
Subscribing to a branch
Publishing a release
Merging branches
Annotating files and directories
References
Advanced usage
ArchipelDeltas, presents a list of current deltas available in Archipel.
Creating branches
Here is a short list of papers which participated in the development of Archipel :
Subscribing to a branch
- http://citeseer.ist.psu.edu/westfechtel00layered.html A Layered Architecture for Uniform Version Management, is the paper that motivated me to start working on Archipel
Merging branches
- http://www.idt.unit.no/~bjornmu/thesis/thesis.html Versioning in a Software Engineering Database - the Change Oriented Way, by Bjørn P. Munch, which seems to be one of the original work that allowed the above paper to be written.
References
- Yann Dirson's http://ydirson.free.fr/en/software/scm/vc.txt thoughts on version control
ArchipelDeltas, presents a list of current deltas available in Archipel.
Here is a list of related software:
Here is a short list of papers which participated in the development of Archipel :
- http://www.venge.net/monotone/index.html Monotone, a distributed version control system that uses SHA-1 signatures as version identifiers. I actually liked this idea very much, and decided to use it in Archipel.
- http://citeseer.ist.psu.edu/westfechtel00layered.html A Layered Architecture for Uniform Version Management, is the paper that motivated me to start working on Archipel
- http://wiki.gnuarch.org/ Arch, a distributed version control system that can use FTP or HTTP for communicating patches. I liked its flexibility and shell integration, but found it complicated and intrusive?
- http://www.idt.unit.no/~bjornmu/thesis/thesis.html Versioning in a Software Engineering Database - the Change Oriented Way, by Bjørn P. Munch, which seems to be one of the original work that allowed the above paper to be written.
- http://abridgegame.org/darcs/ DARCS, a version control system which uses different types of deltas. For instances, there is a delta for replacing the occurences of a string in text files. This is where I realized that version control deltas were simply serializable and undoable commands.
- Yann Dirson's http://ydirson.free.fr/en/software/scm/vc.txt thoughts on version control
- http://prcs.sf.net PRCS, a version control system which I used and really liked for its cleanliness and simplicity. Sadly, it does not support distribution, FTP or HTTP repository checkin and checkout, or binary files. Otherwise, it would be just great.
Here is a list of related software:
- http://www.daemonology.net/bsdiff/ BSDiff, apparently the most performant binary diff utility. You can check http://xoomer.virgilio.it/g_pochini/index.html BDiff too, but it seems to rock less.
- http://www.venge.net/monotone/index.html Monotone, a distributed version control system that uses SHA-1 signatures as version identifiers. I actually liked this idea very much, and decided to use it in Archipel.
- http://wiki.gnuarch.org/ Arch, a distributed version control system that can use FTP or HTTP for communicating patches. I liked its flexibility and shell integration, but found it complicated and intrusive?
- http://abridgegame.org/darcs/ DARCS, a version control system which uses different types of deltas. For instances, there is a delta for replacing the occurences of a string in text files. This is where I realized that version control deltas were simply serializable and undoable commands.
- http://prcs.sf.net PRCS, a version control system which I used and really liked for its cleanliness and simplicity. Sadly, it does not support distribution, FTP or HTTP repository checkin and checkout, or binary files. Otherwise, it would be just great.
- http://www.daemonology.net/bsdiff/ BSDiff, apparently the most performant binary diff utility. You can check http://xoomer.virgilio.it/g_pochini/index.html BDiff too, but it seems to rock less.
- http://xoomer.virgilio.it/g_pochini/index.html BDiff, a binary diff utility.
- http://www.daemonology.net/bsdiff/ BSDiff, apparently the most performant binary diff utility. You can check http://xoomer.virgilio.it/g_pochini/index.html BDiff too, but it seems to rock less.
Adfor added file
Nefor new file
Ncfor newly controlled fileRcfor released control on file
* http://www.venge.net/monotone/index.html Monotone, a distributed version control system that uses SHA-1 signatures as version identifiers. I actually liked this idea very much, and decided to use it in Archipel.
- http://www.venge.net/monotone/index.html Monotone, a distributed version control system that uses SHA-1 signatures as version identifiers. I actually liked this idea very much, and decided to use it in Archipel.
- http://abridgegame.org/darcs/ DARCS, a version control system which uses different types of deltas. For instances, there is a delta for replacing the occurences of a string in text files. This is where I realized that version control deltas were simply serializable and undoable commands.
Here is a short list of papers which participated in the development of Archipel :
Here is a list of related software:
* http://www.venge.net/monotone/index.html Monotone, a distributed version control system that uses SHA-1 signatures as version identifiers. I actually liked this idea very much, and decided to use it in Archipel.
- http://wiki.gnuarch.org/ Arch, a distributed version control system that can use FTP or HTTP for communicating patches. I liked its flexibility and shell integration, but found it complicated and intrusive?
- http://prcs.sf.net PRCS, a version control system which I used and really liked for its cleanliness and simplicity. Sadly, it does not support distribution, FTP or HTTP repository checkin and checkout, or binary files. Otherwise, it would be just great.
- http://xoomer.virgilio.it/g_pochini/index.html BDiff, a binary diff utility.
ArchipelDeltas, presents a list of current deltas available in Archipel.
- Versions are SHA-1 signatures
- Project-oriented
- No annoying
.CVS-like file in every dir
General document conventions
- Supports text and binary files
- Detects change, move, copy
- Simple command line usage
- Supports file and directory annotations
- Human-readable and program-parsable output
- Versions are SHA-1 signatures
- No annoying
.CVS-like file in every dir - Distributed development through HTTP, FTP, NFS, etc.
This sections presents Archipel command-line usage. Every example is given using a relatively simple syntax:
What makes Archipel special:
archipel <command> <arguments>
- Simple to install and use
- Can add specific deltas for refactoring operations
- Automagically detects file and directory changes, copies and moves
- Can be easily used to set up a distributed version control system, adequate to the open source development model
Where something between < and > is a value of the given type. This "something" can be assigned a cardinality. For instance,
General document conventions
archipel status <file|directory>+
This sections presents Archipel command-line usage. Every example is given using a relatively simple syntax:
indicates that the status command of Archipel can take 1 to many argumens of type file or directory, which are the two basic types (with litteral, meaning a text string) that Archipel commands can take.
archipel <command> <arguments>
Quick start
Where something between < and > is a value of the given type. This "something" can be assigned a cardinality. For instance,
Putting files and directories under control
archipel status <file|directory>+
archipel add <file>+
indicates that the status command of Archipel can take 1 to many argumens of type file or directory, which are the two basic types (with litteral, meaning a text string) that Archipel commands can take.
Quick start
Project status
Putting files and directories under control
The current project or a particular directory status can be queried by the following command :
archipel add <file>+
archipel status <file>*
which gives the status of all the files in the current project, or you can type
Project status
archipel status .
The current project or a particular directory status can be queried by the following command :
to know what has changed in the current directory. Note that you can indicate any directory under Archipel control.
archipel status <file>*
The status command ouputs a list of files prefixed by their status:
which gives the status of all the files in the current project, or you can type
archipel status .
to know what has changed in the current directory. Note that you can indicate any directory under Archipel control.
The status command ouputs a list of files prefixed by their status:
Archipel aims at bringing a simple and flexible version control software that fits a distributed programming model. It is based on the concept of undoable commands (aka. deltas), which are inferred from the file system state and logged to a database (the repository).
Archipel aims at bringing a simple and flexible version control software that fits a distributed programming model. It is based on the concept of undoable commands (aka. deltas), which are either inferred from the file system state or explicitely executed, and then logged to a database (the repository).
Simple command line usage
General document conventions
Quick start
'Versioning in a Software Engineering Database - the Change Oriented Way, Bjørn P. Munch, http://www.idt.unit.no/~bjornmu/thesis/thesis.html here, and particularily the portion on http://www.idt.unit.no/~bjornmu/thesis/node77.html change-oriented versionning.
Yann Dirson's http://ydirson.free.fr/en/software/scm/vc.txt thoughts on version control
- http://citeseer.ist.psu.edu/westfechtel00layered.html A Layered Architecture for Uniform Version Management, is the paper that motivated me to start working on Archipel
- http://www.idt.unit.no/~bjornmu/thesis/thesis.html Versioning in a Software Engineering Database - the Change Oriented Way, by Bjørn P. Munch, which seems to be one of the original work that allowed the above paper to be written.
- Yann Dirson's http://ydirson.free.fr/en/software/scm/vc.txt thoughts on version control
Links
References
'Versioning in a Software Engineering Database - the Change Oriented Way, Bjørn P. Munch, http://www.idt.unit.no/~bjornmu/thesis/thesis.html here, and particularily the portion on http://www.idt.unit.no/~bjornmu/thesis/node77.html change-oriented versionning.
Links
Links
Archipel aims at bringing a simple and flexible version control software that fits a distributed programming model.
Archipel aims at bringing a simple and flexible version control software that fits a distributed programming model. It is based on the concept of undoable commands (aka. deltas), which are inferred from the file system state and logged to a database (the repository).
From Archipel's perspective, version control is simply a generalization of an undo mechanism, where deltas are simply serializable undoable commands.
Links
Yann Dirson's http://ydirson.free.fr/en/software/scm/vc.txt thoughts on version control
- Nothing for an unchanged file
- Nothing for an unchanged file
Adfor added fileChfor changed fileMvfor moved fileRmfor removed fileCpfor copied file
Adfor added fileChfor changed fileMvfor moved fileRmfor removed fileCpfor copied file
Adfor added fileChfor changed fileMvfor moved fileRmfor removed fileCofor copied file
Adfor added fileChfor changed fileMvfor moved fileRmfor removed fileCpfor copied file
- No annoying @.CVS@-like file in every dir
- No annoying
.CVS-like file in every dir
- 'Ad' for added file
- 'Ch' for changed file
- 'Mv' for moved file
- 'Rm' for removed file
- 'Co' for copied file
Adfor added fileChfor changed fileMvfor moved fileRmfor removed fileCofor copied file
Simple command line usage
Simple command line usage
Commiting changes
Commiting changes
Checking out versions
Checking out versions
Publishing a release
Publishing a release
Annotating files and directories
Annotating files and directories
Advanced usage
Advanced usage
Creating branches
Creating branches
Subscribing to a branch
Subscribing to a branch
Merging branches
Merging branches
Command line usage
Simple command line usage
Checking out versions
Annotating files and directories
Advanced usage
Creating branches
Subscribing to a branch
Merging branches
Project status
This sections presents Archipel command-line usage. Every example is given using a relatively simple syntax:
The current project or a particular directory status can be queried by the following command :
archipel <command> <arguments>
archipel status
Where something between < and > is a value of the given type. This "something" can be assigned a cardinality. For instance,
which gives the status of all the files in the current project, or you can type
archipel status <file|directory>+
archipel status .
indicates that the status command of Archipel can take 1 to many argumens of type file or directory, which are the two basic types (with litteral, meaning a text string) that Archipel commands can take.
to know what has changed in the current directory. Note that you can indicate any directory under Archipel control.
The @status@ command ouputs a list of files prefixed by their status:
Putting files and directories under control
- 'Ad' for added file
- 'Ch' for changed file
- 'Mv' for moved file
- 'Rm' for removed file
- 'Co' for copied file
- Nothing for an unchanged file
archipel add <file>+
Project status
The current project or a particular directory status can be queried by the following command :
archipel status <file>*
which gives the status of all the files in the current project, or you can type
archipel status .
to know what has changed in the current directory. Note that you can indicate any directory under Archipel control.
The status command ouputs a list of files prefixed by their status:
- 'Ad' for added file
- 'Ch' for changed file
- 'Mv' for moved file
- 'Rm' for removed file
- 'Co' for copied file
- Nothing for an unchanged file
Commiting changes
Once change
Publishing a release
Features:
- Versions are SHA-1 signatures
- Project-oriented
- No annoying @.CVS@-like file in every dir
Command line usage
Project status
The current project or a particular directory status can be queried by the following command :
archipel status
which gives the status of all the files in the current project, or you can type
archipel status .
to know what has changed in the current directory. Note that you can indicate any directory under Archipel control.
The @status@ command ouputs a list of files prefixed by their status:
- 'Ad' for added file
- 'Ch' for changed file
- 'Mv' for moved file
- 'Rm' for removed file
- 'Co' for copied file
- Nothing for an unchanged file
Archipel Version Control
Archipel Version Control
Describe {{Archipel}} here.
Archipel Version Control
Archipel aims at bringing a simple and flexible version control software that fits a distributed programming model.
