J'ai un projet qui fusionnera et validera automatiquement à partir d'une liste de révisions sélectionnées par l'utilisateur d'une branche à l'autre. Si un conflit de fusion se produit, le processus est abandonné et la copie de travail est annulée.Comment inverser de manière récursive les modifications d'une copie de travail à l'aide de SharpSVN?
Cependant, quand je vais essayer à nouveau et sélectionnez une révision qui normalement ne cause pas un conflit sur une copie de travail vierge, je reçois l'erreur suivante:
Merge failed: SharpSvn.SvnWorkingCopyException: Can't merge into conflicted node 'C:\SVN\MyProject\MyBranch\ProjectDirectory\SubDirectory\conflicted-file.cs'
Même si je fais un revert sur la copie de travail, il semble seulement revenir à la propriété svn:mergeinfo
, mais pas les fichiers à l'intérieur (en conflit ou non, les anciens fichiers sont toujours là). Ne revient-il pas récursivement? Je ne vois pas une option pour le faire autrement.
Voici ce que j'ai essayé jusqu'à présent:
using (var client = new SvnClient())
{
// [Authentication code goes here...]
var targetPath = [email protected]"{_svnLocalRoot}\{project}\{branch}\";
// Clean Up
var cleanupArgs = new SvnCleanUpArgs()
{
BreakLocks = true,
ClearDavCache = true,
VacuumPristines = true,
FixTimestamps = true
};
client.CleanUp(targetPath, cleanupArgs);
// Revert
var revertArgs = new SvnRevertArgs()
{
Depth = SvnDepth.Infinity,
ClearChangelists = true
};
client.Revert(targetPath);
// Update
var updateArgs = new SvnUpdateArgs()
{
Depth = SvnDepth.Infinity
};
client.Update(targetPath, updateArgs);
// [Merge and commit code goes here...]
}
Court de supprimer le répertoire de travail ensemble et faire un check-out (qui prend très longtemps), que dois-je faire pour obtenir ma copie de travail à un état vierge sans conflits et le dernier code?
J'utilise actuellement la version SharpSvn.1.9-x64
1.9005.3940.224