Comment programmer par programme les versions de fichiers avec SVN et .NET?

Nous avons un générateur de rapport. Chaque jour, il écrit ses données dans un fichier Excel.

Pour des raisons de contrôle de version et de sécurité des données de fichier, nous devons modifier ce fichier et enregistrer les modifications dans un référentiel.

Recommandez-vous une API SVN .net que vous avez utilisée?

Vous devriez jeter un oeil à la bibliothèque SharpSvn .NET. Vous aurez probablement besoin des commandes checkout et commit:

Départ:

ssortingng wcPath = "c:\\my working copy"; using (SvnClient client = new SvnClient()) { client.CheckOut(new Uri("http://server/path/to/repos"), wcPath); } 

S’engager:

 ssortingng wcPath = "c:\\my working copy"; SvnCommitArgs a = new SvnCommitArgs(); a.LogMessage = "My log message"; using (SvnClient client = new SvnClient()) { client.Commit(wcPath, a); } 

Vous pourrez peut-être activer la conversion automatique pour votre référentiel. Comme il utilise WebDAV, vous pouvez traiter le référentiel comme un lecteur réseau (dossier Web). Et vous pouvez traiter le fichier comme un fichier normal, il suffit d’ouvrir, de modifier et d’enregistrer.

Si c’était moi, je créerais un nouveau référentiel pour les fichiers de données Excel. Je ne pense pas que j’aimerai que mon code soit auto-versé 🙂

Nous utilisons un outil qui recherche actuellement TortoiseSVN installé dans des emplacements prédéfinis et l’utilise avec l’API en ligne de commande. Si c’est pour Windows et pas pour la redissortingbution – cela pourrait être plus facile à faire.

Code utile pour cmd:

 @echo off if exist "%ProgramW6432%\TortoiseSVN\bin\TortoiseProc.exe" set patht=%ProgramW6432% if exist "%ProgramFiles%\TortoiseSVN\bin\TortoiseProc.exe" set patht=%ProgramFiles% if exist "%ProgramFiles(x86)%\TortoiseSVN\bin\TortoiseProc.exe" set patht=%ProgramFiles(x86)% echo Placing SVN Commit "%patht%\TortoiseSVN\bin\TortoiseProc.exe" /command:commit /path:"%CD%" /notempfile 

Si vous souhaitez toujours effectuer cette tâche à partir de code, SharpSVN http://sharpsvn.open.collab.net est préférable.

Le plus simple serait de générer un processus et d’appeler SVN.exe pour valider vos modifications.

Voici une question similaire qui a été posée.

Est-ce que quelqu’un connaît une bonne API C # pour Subversion?

Voici une autre ressource

Bibliothèques SVN pour .NET?