8
votes

Obtenez le dernier numéro d'enregistrement (Dernier ID de modifications)

Y a-t-il un moyen d'obtenir une version de la dernière modification de manière programmatique en général.

Il est assez facile d'obtenir un identifiant de modifications pour certains fichiers: xxx

puis appelez getItems ou QueryHistoire, mais j'aimerais savoir quel était le dernier numéro de checkin.


0 commentaires

3 Réponses :


0
votes

J'utilise la commande TF suivante pour ce xxx

après exécution, je analysais la sortie de cette commande pour obtenir le numéro de modification xxx

ceci Comment j'exécute la commande xxx

pas de manière efficace, mais toujours une solution qui fonctionne dans TFS 2008, espérons que cela aide.


0 commentaires

9
votes

Vous pouvez le faire comme ceci:

var latestChangesetId =
    vcs.QueryHistory(
        "$/",
        VersionSpec.Latest,
        0,
        RecursionType.Full,
        String.Empty,
        VersionSpec.Latest,
        VersionSpec.Latest,
        1,
        false,
        true)
        .Cast<Changeset>()
        .Single()
        .ChangesetId;


6 commentaires

Il semble que VersionControlServer ait également une méthode GetLatestChangeDetide. C'est beaucoup plus court :-)


Pouvons-nous transmettre le nom d'utilisateur et pwd pour la connexion TFS var tfs = tfsteamprojectCollectionFactory.getteamProjectCollection (nouveau URI (TFSServer)); tfs.connect (ConnectOcctions.none); BCoz après le déploiement de mes pages Web sur IIS Server I m Impossible d'obtenir les détails TFS mais pour localhost, je suis capable d'obtenir les détails TFS pour les mêmes pages Web. im obtenue ci-dessous ERR Microsoft.teamfoundation.teamfoundationsServerunauthorizedExc Eption: TF30063: Vous n'êtes pas autorisé à accéder à TFSSERVER: 8080 / TFS / mycollection . sur microsoft.teamfoundation.client.tfsconnection.throwauthoriza TionException (sauf ion e)


@ Picnic4u a probablement la meilleure question à cette question.


@DAVESHAW - J'ai essayé ci-dessous de travailler parfaitement .... NetworkCrDential Credit = Nouveau NetworkCredential ("Nom d'utilisateur", "Mot de passe", "Nom de la Domaine"); var tfs = nouveau TeamFoundationerver (" TFSSERVER: 8080 / TFS / Mycollection ", CRED); tfs.ensureAuthentifié ();


Comment le faites-vous pour un projet ou un dossier spécifique? J'ai changé "$ /" à "$ / myProject1" et cela a fonctionné, mais si je le change de "$ / myProject2", cela ne l'a pas fait, il a dit qu'il n'y avait pas d'articles dans la collection. En fait, cela ne fonctionne que sur le projet avec la dernière modification de celui-ci. Comment spécifiez-vous une gamme en plus de "Dernières récentes"?


J'ai pu faire ce travail (et il est étonnamment performant, même dans des projets qui ont plusieurs milliers de modifications): console.writeline (vcs.queryhistory ("$ / projet1 /", VersionsPec.laTest, 0, RécursionType.ful, NULL, NULL, VERSIONSPEC.LATEST, INT32.MAXVALUE, FALSE, VRAI) .CLAST () (VCS.QuéryHistory ("$ / projet1 /", VersionsPec.Laest, 0, RécursionType.full, NULL, NULL, VERSIONSPEC.LATEST, INT32.MAXVALUE, FAUX, VRAI) .CLAST () SELECT (CS = > cs.changeesettid) .max ());



1
votes

Utilisez versionControlServer.getlatestChangeSetide pour obtenir le dernier ID de modifications, comme indiqué par l'utilisateur tbaskan dans les commentaires.

(dans le SDK Java TFS, il est VersionControlClient.getlatestChangeSettiD )


0 commentaires