...
- repository – a directory, that contains Git database and metadata.
- commit – a Git object, that contains containing a pointer to a data snapshot in Git database. Essentially, the commit is a hash-named file in Git database, that contains a reference to a tree object, representing a data snapshot in timefile tree snapshot along with author and date information. Commit is identified by its SHA1 hash value.
- branch – a reference to certain commit; a file in a Git database that contains a hash of a certain commit, thus referencing that particular commit.
- master branch – a default branch called master that's being created along with new repository. By agreement, it represents the main line of development, but technically it's just another branch.
- tag – like a branch, a reference to a commit - a file in a Git database that contains a hash of that particular commit. Git supports two kinds of *tags*: *lightweight* and *annotated*; SubGit supports only *lightweight tags*.
...
All the mapping configuration assembled in SubGit configuration file. The configuration file is being created at the SVN-to-Git translation beginning by SubGit's configure subcommand. The file , that is situated in subgit subdirectory inside a newly created Git repository:
| Code Block |
|---|
| language | text |
|---|
| theme | FadeToGrey |
|---|
| title | SubGit confiuration file |
|---|
|
/GIT_REPOS_PATH
…
/subgit
…
/subgit/config |
Here is an example of how the [svn] of the configuration file may look like:
...
| Info |
|---|
|
- trunk must be mapped; the only exclusion is the configuration with no defined mapping - no trunk, branches, tags and shelves options at all - that may be used to import SVN projects with no branches.
- there must be only one trunk mapping.
- trunk cannot contain wildcards.
|
...
In such case, SubGit will be able to see all the commits, but won’t be able to recognize the branch name to which they belong. So it will place them into shelves SVN directory.
Find more details on the shelves in See a blog post "What are shelves really?" blog post. for more details on shelves.
The setting sets a directory in SVN where shelves will be stored:
...
| No Format |
|---|
http://example.com/svn/repository/Project1/branches/feature_* |
svn.excludePath, svn.includePath
...
...
These are settings that provide a possibility to exclude (or vice versa, include) some files from translation. It may be useful e.g. if you have some big files in SVN that you don't want to be present in Git repository. The syntax is simple:
...