2010-08-18 1 views
8

J'ai créé un dépôt dans ma machine locale:svn type copie en essayant de créer des branches

svnadmin create /home/me/Desktop/svn_test/trunk 

ensuite importer le répertoire MYDIR au référentiel.

svn import myDir/ file://home/me/Desktop/svn_test/trunk 

Jusqu'ici, svn checkout, commit, mise à jour fonctionne très bien.

Maintenant, je veux créer branche à partir du référentiel, alors j'ai suivi le tutoriel et exécuté:

(svn destination source de copie)

svn copy file:///home/me/Desktop/svn_test/trunk file:///home/me/Desktop/svn_test/branches 

Puis je suis arrivé:

svn: Unable to open an ra_local session to URL 
svn: Unable to open repository 'file:///home/me/Desktop/svn_test' 

Qu'est-ce que je fais mal ici? Après avoir examiné attentivement la commande d'exemple, j'ai découvert qu'il y a des barres obliques inverses comme ci-dessous, quelles sont ces commandes? (Et encore obtenir l'erreur)

svn copy file:///home/me/Desktop/svn_test/trunk \ file:///home/me/Desktop/svn_test/branches \ -m "test" 
svn: Cannot mix repository and working copy sources 
+0

Probablement juste une faute de frappe dans votre question, mais vous semblez manquer une barre oblique dans votre ligne d'importation. – timdev

+0

Est-ce que cela entraîne l'échec de svn copy? La commande import n'a renvoyé aucune erreur et d'autres commandes telles que checkout, commit etc fonctionnent correctement. Je rencontre un problème avec la commande svn copy. J'ai modifié pour obtenir plus de détails, mais je ne suis pas vraiment sûr de ce que les barres obliques inverses font ici. –

Répondre

7

Vous n'avez pas créé un référentiel dans svn_test

Vous avez créé dans svn_test/tronc

Vous voulez

$ svnadmin create /home/me/Desktop/svn_test 

à la place. De la façon dont vous l'avez fait, svn_test/trunk est le repo, donc subversion ne peut pas faire des recherches sur svn_test/branches - puisque ce n'est pas un chemin de dépôt.

EDIT (pour plus de clarté):

Qu'est-ce que vous voulez faire quelque chose comme ceci:

$ mkdir /path/to/repo    # NO /trunk! 
$ svnadmin create /path/to/repo  # NO /trunk! 
$ svn import -m "initial import" . file:///path/to/repo/trunk #import into a directory called "/trunk" that lives in the repository 
$ svn co file:///path/to/repo/trunk myproject 
$ cd myproject 
$ # do some stuff to your working copy... 
$ svn commit -m "I made some changes" 
$ # decide you want to make a branch... 
$ svn copy -m "branching for some reason" file:///path/to/repo/trunk file:///path/to/repo/branches/some-branch 

Notez qu'il n'y a aucune mention de "tronc" jusqu'à ce que le svn import arrive.

+0

J'ai mis à jour la question, désolé que c'était une faute de frappe, j'ai donc créé un dépôt dans/home/moi/Desktop/svn_test/trunk –

+2

Ignorez les barres obliques inversées que vous avez vues - elles servent à faire des commandes multilignes en shell. Votre problème est toujours que "trunk" n'est pas censé être le référentiel, juste un répertoire qui est * dans * le référentiel. Modifier ma réponse pour donner une démo appropriée. – timdev

+0

Super! ça marche maintenant, merci! J'ai confondu l'utilisation du tronc entre mon projet dir et référentiel. –

Questions connexes