Nous utilisons SharpSVN 1.5 dll pour nos fonctionnalités de contrôle de source. Notre caisse et CheckIn fonctionne comme follwsProblèmes de remplacement de SharpSVN 1.5 dll par SharpSVN 1.6 dll
Supposons que je veuille checkout un nom de dossier TEST et son contient 3 fichiers file1.txt disent, file2.txt, file3.txt
Étape 1: - Commander file1.txt du référentiel SVN
Étape 2: - Commander file2.txt à partir du dépôt SVN
Étape 3: - Commander file3.txt du dépôt SVN
Pendant le fonctionnement de la caisse de file1.txt un dossier .svn est créé dans notre dossier de travail. Ce dossier .svn contient un fichier nommé en tant qu'entrées. Ce fichier contient svn repository et checkout file info (On peut le voir ouvert via le bloc-notes). Lorsque l'opération de file2.txt checkout s'est produite (Checkout dans le même dossier de travail), il n'y a pas de nouvelle création de dossier .svn. Sharpsvn utilise le dossier .svn existant (dossier .svn d'extraction de fichier précédent) et ajoute l'information file2.txt dans le fichier d'entrées. La même chose s'est produite lors de l'extraction de file3.txt dans le même dossier de travail.
Lors de l'opération d'archivage, vérifiez d'abord fichier1.txt puis fichier2 puis fichier3. Svn utilise le dossier unique .svn (dans le dossier de travail) pour tous ces fichiers à checkin.During file1.txt check in, le fichier entries contient ses informations donc ce fichier est sous le contrôle de version svn et il pourrait checky.Similar way file2. txt et file3.txt
Maintenant, nous essayons d'utiliser SharpSVN 1.6 dll, mais face à certains problèmes dans la caisse et le fonctionnement checkin. Pendant le fichier file1.txt checkout, le dossier .svn est créé et le fichier d'entrées contient file1.txt info.During file2.txt checkout, le fichier .svn foder existant est supprimé et le nouveau dossier .svn est créé.Ainsi, les entrées ne contiennent que file2.txt info not file1.txt info.Quand j'essaie de checkin, le dernier fichier que j'ai extrait de svn est seulement vérifié dans svn.Ceci est parce que le fichier d'entrées dans le dossier .svn contient seulement les dernières informations sur le fichier extrait.
Je dois obtenir toutes les informations de fichier dans les entrées fichier à l'aide sharpsvn 1.6 dll
Mon extrait de code comme suit
public string[] CheckOut(string pSCPath, string pComment, string pLocalPath, int pRevisionNum)// Checks out a file from svn
{
string[] strCheckoutDetails = new string[2];
Uri uriSCPath = new Uri(pSCPath);
SvnCheckOutArgs objChkoutargs = new SvnCheckOutArgs();
objChkoutargs.Revision = pRevisionNum;
SvnInfoEventArgs info;
try
{
objChkoutargs.Depth = SvnDepth.Empty;
string strSingleFiletoCheckout = uriSCPath.ToString();
string strFolderNameofSingleFileSelected = strSingleFiletoCheckout.Remove(strSingleFiletoCheckout.LastIndexOf('/'));
Uri UriSingleFileCheckout = new Uri(strFolderNameofSingleFileSelected);
_objSVNClient.CheckOut(uriSingleFileCheckout, pLocalPath,objChkoutargs); //empty working folder
SvnTarget target = new Uri(strSingleFiletoCheckout);
string strFileNameonlyfromUri = strSingleFiletoCheckout.Substring(strSingleFiletoCheckout.LastIndexOf("/") + 1);
if (!copyFiletoWorkingCopy(pLocalPath, strFileNameonlyfromUri, _objSVNClient)) //make versioned file available to the current working copy - Biju
{
pLocalPath = "";
throw new SharpSvn.SvnException("Checkout Exception");
}
_objSVNClient.GetInfo(uriSCPath, out info);
strCheckoutDetails[0] = info.LastChangeRevision.ToString();
}
catch (Exception ex)
{
pLocalPath = "";
throw ex;
}
strCheckoutDetails[1] = pLocalPath;
return strCheckoutDetails;
}
Merci
Reji
Quelques commentaires à propos de l'exemple de code: * Ne lancez pas SharpSvn.SvnException. * Au lieu de "throw ex;", utilisez "throw", de cette façon la trace de la pile est conservée, sinon elle provient de l'instruction "throw ex". –