8
votes

Comment exporter des fichiers modifiés entre deux révisions SVN

Comment puis-je exporter des fichiers modifiés dans SVN qui ont changé entre deux révisions. J'ai besoin d'une solution via une ligne de commande ou en utilisant des scripts (avec une structure de dossiers appropriée). De plus, j'ai besoin d'une solution basée sur des fenêtres.

E.g. STH comme: xxx

Je veux un arborescence de répertoire avec une copie des fichiers qui changeant dans n'importe quelle révision de 50 sur

svn

4 commentaires

Qu'est-ce que vous demandez exactement? Pourriez-vous fournir un exemple de ce que vous essayez de faire?


Il suffit d'ajouter d'exemple ce que je cherche


Qu'entendez-vous avec l'exportation? Voulez-vous un arborescence de répertoire avec une copie des fichiers qui ont changé dans une révision de 50 sur 50 sur?


@Matteo oui je veux que je veux un arborescence de répertoire avec une copie des fichiers qui a changé dans n'importe quelle révision de 50 sur


6 Réponses :


12
votes

Voici un didacticiel étape par étape qui fait cela avec Tortoisisesvn's comparer les révisions et Sélection d'exportation vers ... fonctions:

http://www.electrictoolbox.com/tortoisisvn-exporting-changed-files/


1 commentaires

Déjà je sais, mais je veux une solution de ligne de commande pour le bitramage



0
votes

Si je comprends votre question correctement, vous n'êtes pas intéressé par un patch global entre les révisions. Dans ce cas, vous devez exporter chaque révision dans un répertoire distinct, puis utiliser un outil tel que Beyond Comparer (ou tout ce qui est équivalent comme Winmerge) pour identifier des fichiers modifiés.

Mais, si votre répertoire de construction est sous contrôle de version, vous feriez mieux de créer un correctif et d'appliquer dessus.


1 commentaires

Pouvez-vous s'il vous plaît me donner un exemple



11
votes

Autant que je sache, SVN ne fournit pas une telle fonctionnalité. Mais vous pouvez écrire un programme C # simple à l'aide de Sharpsvn pour le faire. Voici un échantillon que vous pouvez utiliser. Dans cet échantillon, je reçois l'ensemble du fichier modifié de la révision 100 à 200.

using SharpSvn;
using System.IO;
using System.Collections.ObjectModel;
using Microsoft.VisualBasic;

namespace SvnDiffExporter
{
    class Program
    {
        static void Main(string[] args)
        {
            SvnClient client = new SvnClient();
            SvnRevisionRange range = new SvnRevisionRange(100, 200);
            MemoryStream result = new MemoryStream();

            Collection<SvnLogEventArgs> items;
            SvnLogArgs logargs = new SvnLogArgs(range);
            client.GetLog(@"e:\Artifacts", logargs, out items);

            int i = 0;
            string [] path = new string[255];
            foreach (SvnLogEventArgs ar in items)
            {
                foreach (SvnChangeItem changeitem in ar.ChangedPaths)
                {
                    if (changeitem.Action != SvnChangeAction.Delete)
                    {
                        path[i] = changeitem.Path;
                        i++;
                    }
                }
            }

            string localpath = @"c:\data";
            foreach (string str in path)
                client.Export(str, localpath);
        }
    }
}


1 commentaires

Je pense que votre solution résoudra mes problèmes, je vérifierai et postera



1
votes

Voici une autre option écrite dans BASH Script: xxx

J'utilise Le script complet pour effectuer une exportation incrémentielle SVN sur un environnement de production de lampes.


0 commentaires

7
votes

J'ai créé un fichier de commandes qui fonctionnera pour exporter les fichiers modifiés entre les révisions. xxx

Pour l'utiliser, vous spécifiez simplement la plage de révision ou de révision sur la ligne de commande et une destination pour exporté. des dossiers. xxx


0 commentaires

1
votes

Bien que le message de @ Hoodi puisse fonctionner si on est capable de nous une solution C #, le message de @kicken est extrêmement efficace en tant que solution Windows.

Malheureusement, je n'ai trouvé aucun moyen d'utiliser le référentiel. J'ai dû vérifier la révision dont j'ai besoin d'un répertoire d'abord, puis exécutez le script sur le répertoire "Copie de travail". P>

Je n'ai pas pu l'utiliser comme affiché. Cette petite ré-écriture a fonctionné pour moi: p>

p>

C:\YourRepository>svnexport.bat 1:10 C:\Export <pathToWorkingDirectory>


0 commentaires