How to make DVCS fully compatible with Subversion?

What architectural changes should DVCS fully interact with Subversion?

Many DVCS have some kind of bi-directional interface with Subversion, but there are limitations and caveats. For example, git-svn can create a repository that reflects Subversion, and changes to this repo can be sent back to Subversion via 'dcommit'. But the git-svn manpage clearly warns against creating clones of this repository, so this is essentially a working copy of Subversion into which you can use git commands. Bazaar has a bi-directional Subversion feature, but its documentation notes that Subversion properties are not supported at all.

This is the end that I am pursuing. I want a Subversion repository and a DVCS repository which in the steady state have the same content. When something changes on one, it is automatically mirrored on the other. Subversion users typically interact with the Subversion repository. DVCS users clone the DVCS repository, extract the changes from it, and push the changes to it. Most importantly, they don’t need to know that this special DVCS repository is associated with the Subversion repository.

It would probably be nice if any clone of the special repository itself was a special repository and could directly communicate with Subversion, but this can be enough if only the special repository interacts directly with Subversion.

I think that basically it is necessary to improve the bidirectional feature so that changes to Subversion properties are translated into changes in the DVCS repository. Some changes to the DVCS repository will be translated to changes to the Subversion properties.

Or is it the answer to creating a new feature in Subversion that interacts with the DVCS repository using the DVCS repository as a special storage layer like fsfs or bdb?

If there is no direct juxtaposition between the things that Subversion and DVCS consider to be versions, does this mean that there will always be some activity that cannot be properly recorded on one or the other?

+3
source share
3 answers

, , , , , Subversion DVCS. , .

, - DVCS, . , , Subversion , .

, , , CVS Subversion. - , . , , git DVCS-. git -svn - Subversion, . OTOH, , , . - . , , , , git/hg/bzr/whatever. , Subversion.

, , : Subversion, , , DVCS, -!

, , . , - , Subversion . - DVCS , , Subversion DVCS.

+3

git, git -svn Subversion. git -svn git ↔ svn, it (git ↔ git) ↔ svn. , git SVN, git - push/pull. . . .

- "", SVK, DVCS, Subversion, ( - PERL).

DVCS , , SVK git/mercurial/bazaar.

+1

, , , :

  • SVN - ,
  • SVN Git

(. SVN vs. Git)

, " DVCS , Subversion ". , , Git, .

I would just add svn2git and git2svn for evaluation so that your “DVCS-side users” deal with Git repositories that do not reflect the “directories” that should actually be branches. (see " Cloning a custom Svn repository with Git -Svn ")

+1
source

Source: https://habr.com/ru/post/1743566/


All Articles