Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 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
languagetext
themeFadeToGrey
titleSubGit confiuration file
/GIT_REPOS_PATH
    …
    /subgit
       …
       /subgit/config

Here is an example of how the [svn] of the configuration file may look like:

...

Info
titleTrunk mapping rules
    • 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
Anchor

...

svn.excludePath

...

svn.excludePath

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:

...