2010-06-11 10 views
6

Je sais que si certains fichiers sont extraits (modifiés), je pourrais cliquer droit sur le dossier contenant, puis sélectionner "créer un correctif". Après, je verrai la liste de tous les fichiers extraits. Donc je pourrais les inclure dans le patch. Mais quand aucun fichier n'est extrait, alias tout est validé, la fenêtre de création de patch est vide. La question est donc comment puis-je créer un patch à partir de fichiers archivés? Je veux envoyer ce correctif à des collègues afin qu'ils puissent les appliquer sur le serveur svn de l'entreprise.Comment créer un correctif dans TortoiseSVN alors qu'aucun fichier n'est extrait?

grâce,

+0

Patch signifie diff entre deux versions. Dans le cas que vous avez décrit, il y a des modifications locales sur la base SVN. Quelles sont les deux versions que vous souhaitez soustraire? –

+0

Il y a un serveur svn dans la société auquel je n'ai pas accès depuis chez moi. Une fois par semaine, je copie le repo de l'entreprise à l'ordinateur personnel via dvd/flash/etc. Au cours de la semaine, j'ai des changements dans ma source d'origine et je souhaite les envoyer au dépôt de l'entreprise par courrier électronique à des collègues. Je sais que git peut être un meilleur choix mais je dois utiliser SVN seulement. –

Répondre

12

Un diff unifié est un fichier patch.

  1. En utilisant TortoiseSVN, un clic droit sur votre dossier de travail et sélectionnez « Afficher le journal »
  2. Sélectionnez les deux révisions (Ctrl-clic)
  3. Faites un clic droit sur l'une des révisions en surbrillance et sélectionner « Afficher les différences en tant que diff unifié "

Pour enregistrer les fichiers modifiés avec la structure de dossiers.

  1. En utilisant TortoiseSVN, faites un clic droit sur votre dossier de travail et sélectionnez « Afficher le journal »
  2. Sélectionnez les deux révisions (Ctrl-clic)
  3. Sélectionnez "Comparer les révisions." Ceci listerait les fichiers modifiés entre les révisions dans une boîte de dialogue
  4. Sélectionnez tous les fichiers dans la boîte de dialogue qui apparaît. Faites un clic droit sur les fichiers sélectionnés et sélectionnez "Exporter la sélection vers ..."

Ceci devrait exporter les fichiers modifiés avec la structure de dossiers.

+0

Cela semble très bien. Mais 2 problèmes: 1. Si j'ai plusieurs éléments modifiés dans une arborescence de dossiers, je suis obligé de le faire manuellement sur chaque fichier. 2. Existe-t-il un moyen d'obtenir diff des structures de dossiers? Par exemple, les changements de répertoire? –

+0

@afsharm J'ai mis à jour la réponse. – Shaji

+0

En fait 3 problèmes ... l'affichage diff unifié ne semble pas supporter ShiftJIS, donc le texte japonais devient mojibake. – iforce2d

1

Si vous voulez juste des collègues pour obtenir les fichiers les plus à jour, ils devraient l'obtenir à partir du serveur en utilisant svn svn-caisse. Si pour une raison quelconque, ils ne peuvent pas accéder à votre serveur svn, vous pouvez également cliquer avec le bouton droit et choisir svn-export; cela vous donne un ensemble de tous les fichiers dans le dossier contenant sans aucun des répertoires cachés .svn.

+0

S'il vous plaît noter mon commentaire sur la question. De plus, une exportation n'est pas un bon choix pour moi. Parce que je veux envoyer seulement les fichiers modifiés. –

2

Ce que vous décrivez est diff entre deux sous-versions révisions. Consultez la section du livre SVN sur svn diff pour voir comment le faire.