2009-12-23 9 views
5

Existe-t-il un outil qui me permet d'obtenir la même fonctionnalité que git-svn pour Perforce? J'ai vu git-p4 sur github mais il semble que cela importe la source d'un repo git à un repo de Perforce. Est-ce que ça va dans l'autre sens? Est-il destiné à être utilisé comme un outil fréquent ou juste un outil d'importation à usage unique?Quelque chose de similaire à git-svn pour Perforce?

Scénario: Je suis un entrepreneur, mon client utilise Perforce pour le contrôle de ses sources, mais j'aimerais utiliser git localement.

+0

Je viens de terminer ma réponse en réponse à votre commentaire – VonC

Répondre

7

git-p4 peut aller dans les deux sens. Utilisez git-p4 sync ou git-p4 rebase pour mettre à jour votre zone de travail locale, puis utilisez git localement. Lorsque vous êtes prêt à soumettre vos commits git en p4, utilisez git-p4 submit.

Vous devrez créer un client P4 (dans un endroit séparé de votre zone de travail git) et l'utiliser exclusivement pour la synchronisation en utilisant git-p4.

J'utilise cette place et il a bien fonctionné pendant des mois, avec quelques mises en garde:

  • Vous pouvez utiliser des branches git localement, mais P4 ne rien savoir à leur sujet. Il verra seulement le maître.

  • Renommer les fichiers apparaîtra dans P4 en tant qu'add + delete au lieu de l'intégration + delete préférée.

  • Les validations Git sont recréées lors de l'exécution de git-p4 submit. L'horodatage est donc désactivé et vous pouvez avoir des problèmes de fusion avec vos autres branches git. (Tout comme le problème "récupérer à partir de rebasage en amont".)

+0

Merci Scott, c'est une excellente nouvelle. Je vais donner un coup de feu bientôt. Lorsque vous exécutez git-p4 submit, comment sait-il quelle branche/emplacement p4 soumettre? Je voudrais voir comment faire face à différentes branches p4 :) –

+1

Il soumet les fichiers en utilisant le client p4 vous le dites. Donc, partout où ce client est mappé. Je suppose que vous pouvez modifier le mappage de ce client p4 à tout moment, mais vous devez faire attention car git-p4 utilise les changements 'p4 ... pour trouver les changements qui doivent être importés dans git, donc quand vous changez le mappage client, git-p4 peut ne pas obtenir tous les changements dont il a besoin pour synchroniser votre zone de travail git. – ScottJ

+0

Ajout d'une autre mise en garde sur la façon dont 'git-p4 submit' bascule fondamentalement votre workitea git. – ScottJ

Questions connexes