8
votes

Inclure le fichier image dans le patch SVN DIFF

Je crée un correctif DIFF SVN, mais il semble que les fichiers image ne soient pas inclus. Le correctif contient des lignes similaires pour chaque fichier image, comme indiqué ci-dessous:

svn diff > test.diff


0 commentaires

4 Réponses :


1
votes

Malheureusement, SVN DIFF ne traite pas les données binaires.

Cochez certaines des réponses de: Subversion Diff comprenant de nouveaux fichiers

en particulier: https://stackoverflow.com/a/2255846/9822


0 commentaires

0
votes

Les fichiers d'image sont inclus dans votre diff, comme indiqué par les lignes avec --- et +++, mais elles sont incluses comme des fichiers entiers dans le patch - ceci est dû en partie le problème de la manière de montrer de manière significative les modifications Dans des données binaires telles que des images dans un format texte uniquement - sauf si vous souhaitez que les pages de différences hexagonales, (telles que FC -B A.gif b.gif produiraient).

Vous êtes donc dit que les fichiers ont changé et que vous devez décider comment vous souhaitez les comparer - pour les fichiers image L'une des meilleures comparaisons des différences significatives est l'œil humain - vous ne vous attendriez pas à un Système de contrôle de révision Pour pouvoir vous dire "C'était une photo d'un homme chauve fronçant les sourcils, mais c'est maintenant une jolie pom-pom girl pom-pom girl souriant" Voulez-vous?


2 commentaires

SVN ne peut actuellement créer de fichiers de correctifs unifiés avec des données binaires. Si vous inspectez le fichier de patch, comme dans Visual Studio, il n'y a pas de données binaires là-bas. Il y a une discussion sur cette fonctionnalité manquante sur le site Subversion Dev Site: SUBVERSION.1072662.N5.NEBBABLE.COM/...


@Ron Il n'est pas précisément que SVN ne peut pas produire de fichiers de diff de fichiers binaires unifiés tels que le fichier image, mais plutôt que le format DIFF unifié n'inclut aucune méthode de représentation des différences entre deux fichiers binaires. En général, le delta, en format texte, sera probablement supérieur à une nouvelle copie du fichier, à moins que le changement ne soit très petit et localisé, et même pour les formats comprimés tels que JPEG, le delta entre les fichiers peut être élevé, même pour une mineure. monnaie. MPEG se déplace par a) à l'aide d'un format très spécifique pour les cadres clés et B) à l'aide de format binaire pour les Deltas.



2
votes

SVN ne prend pas en charge pour inclure des fichiers binaires dans DIFFS. En tant que note latérale: GIT prend en charge les fichiers binaires. Le fichier de patch résultant ressemble à ceci: xxx

si techniquement est possible est possible, cela ne fonctionne tout simplement pas avec SVN. Donc, si vous avez désespérément besoin d'un fichier de correctif comprenant des fichiers binaires, envisagez de vérifier SVN à l'aide de GIT. C'est facile: git svn clone http: // chemin / à / svn . Fonctionne également similaire avec svn: // ... . Vous pouvez ensuite créer un DIFF GIT et appliquer ce diff sur n'importe quelle cible. La cible n'a pas besoin d'être un référentiel git. git appliquer mon.patch


2 commentaires

Subversion 1.9 permet de générer de telles patchs si vous utilisez svn diff -git au lieu d'un fichier svn diff


@Berthuijben Même avec - git Il refuse de diffuser des fichiers binaires.



3
votes

avec Subversion 1.9 Vous pouvez utiliser --git drapeau pour inclure le contenu binaire au fichier de correctif, par exemple: xxx subversion 1.8 a déjà drapeau, mais ignore le contenu binaire avec elle.


1 commentaires

Il imprime des chemins absolus à la patch.