¿Cómo obtener el último número de revisión con SharpSVN?¿Cómo obtener el último número de revisión de SharpSVN?
Respuesta
La forma menos costosa de recuperar la revisión de encabezado de un repositorio es el comando Información.
using(SvnClient client = new SvnClient())
{
SvnInfoEventArgs info;
Uri repos = new Uri("http://my.server/svn/repos");
client.GetInfo(repos, out info);
Console.WriteLine(string.Format("The last revision of {0} is {1}", repos, info.Revision));
}
Bueno, una rápida búsqueda en Google me dio eso, y funciona (solo apuntar al/del tronco/URI):
http://sharpsvn.open.collab.net/ds/viewMessage.do?dsForumId=728&dsMessageId=89318
Ok, pensé que por mí mismo:
SvnInfoEventArgs statuses;
client.GetInfo("svn://repo.address", out statuses);
int LastRevision = statuses.LastChangeRevision;
Busqué en Google también mucho, pero la única cosa que fue uno trabajando para que consiga realmente la última revisión fue:
public static long GetRevision(String target)
{
SvnClient client = new SvnClient();
//SvnInfoEventArgs info;
//client.GetInfo(SvnTarget.FromString(target), out info); //Specify the repository root as Uri
//return info.Revision
//return info.LastChangeRevision
Collection<SvnLogEventArgs> info = new Collection<SvnLogEventArgs>();
client.GetLog(target, out info);
return info[0].Revision;
}
las otras soluciones están comentadas. Pruébelo usted mismo y vea la diferencia. . .
Este comando recupera todas las revisiones para obtener un solo número de revisión ... Eso es un poco exagerado y ciertamente no es la forma más rápida de obtener la información. –
estoy comprobando la última versión de la copia de trabajo utilizando SvnWorkingCopyClient:
var workingCopyClient = new SvnWorkingCopyClient();
SvnWorkingCopyVersion version;
workingCopyClient.GetVersion(workingFolder, out version);
La última versión del repositorio de trabajo local es entonces disponible a través
long localRev = version.End;
caso de un repositorio remoto, utilice
var client = new SvnClient();
SvnInfoEventArgs info;
client.GetInfo(targetUri, out info);
long remoteRev = info.Revision;
en su lugar.
Esto es similar al uso de la herramienta svnversion desde la línea de comandos. Espero que esto ayude.
Esta es una pregunta muy antigua, y se ha respondido bien en las dos respuestas principales. Aún así, con la esperanza de que pueda ser de alguna ayuda para alguien, estoy publicando el siguiente método C# para ilustrar cómo obtener no solo los números de revisión tanto del repositorio como de la copia de trabajo, sino también cómo probar situaciones típicas que podrían ser considerado como un problema, por ejemplo, en un proceso de compilación automatizado.
/// <summary>
/// Method to get the Subversion revision number for the top folder of the build collection,
/// assuming these files were checked-out from Merlinia's Subversion repository. This also
/// checks that the working copy is up-to-date. (This does require that a connection to the
/// Subversion repository is possible, and that it is running.)
///
/// One minor problem is that SharpSvn is available in 32-bit or 64-bit DLLs, so the program
/// needs to target one or the other platform, not "Any CPU".
///
/// On error an exception is thrown; caller must be prepared to catch it.
/// </summary>
/// <returns>Subversion repository revision number</returns>
private int GetSvnRevisionNumber()
{
try
{
// Get the latest revision number from the Subversion repository
SvnInfoEventArgs svnInfoEventArgs;
using (SvnClient svnClient = new SvnClient())
{
svnClient.GetInfo(new Uri("svn://99.99.99.99/Merlinia/Trunk"), out svnInfoEventArgs);
}
// Get the current revision numbers from the working copy that is the "build collection"
SvnWorkingCopyVersion svnWorkingCopyVersion;
using (SvnWorkingCopyClient svnWorkingCopyClient = new SvnWorkingCopyClient())
{
svnWorkingCopyClient.GetVersion(_collectionFolder, out svnWorkingCopyVersion);
}
// Check the build collection has not been modified since last commit or update
if (svnWorkingCopyVersion.Modified)
{
throw new MerliniaException(0x3af34e1u,
"Build collection has been modified since last repository commit or update.");
}
// Check the build collection is up-to-date relative to the repository
if (svnInfoEventArgs.Revision != svnWorkingCopyVersion.Start)
{
throw new MerliniaException(0x3af502eu,
"Build collection not up-to-date, its revisions = {0}-{1}, repository = {2}.",
svnWorkingCopyVersion.Start, svnWorkingCopyVersion.End, svnInfoEventArgs.Revision);
}
return (int)svnInfoEventArgs.Revision;
}
catch (Exception e)
{
_fLog.Error(0x3af242au, e);
throw;
}
}
(Este código incluye un par de cosas específicas para el programa fue copiado, pero eso no debe hacer que las partes SharpSvn difícil de entender.)
- 1. ¿Cómo obtener el número de revisión de subversión usando maven?
- 2. ¿Cómo obtener programáticamente el número de revisión SVN?
- 3. ¿Obtener detalles de registro para un número de revisión específico en un enganche post-commit con SharpSVN?
- 4. ¿Cómo se determina el último número de revisión de SVN enraizado en un directorio?
- 5. VisualSVN ¿Cómo revertir el número de revisión?
- 6. ¿Cómo calcula CouchDB el número de revisión
- 7. ¿Cómo obtener una lista del último número de revisión para cada archivo en un repositorio de Mercurial?
- 8. Cómo verificar el último dígito del número
- 9. Cómo obtener el último registro
- 10. svnkit: cómo obtener el número de revisión de copia de trabajo?
- 11. ¿Cómo obtener el último nombre de etiqueta?
- 12. ¿Cómo obtener el último registro de Sqlite?
- 13. Obtenga el número de revisión de un repositorio remoto
- 14. ¿Cómo inyectar el número de revisión de SVN en JAR?
- 15. Uso regexp_instr para obtener el último número en una cadena
- 16. RNGCryptoServiceProvider - Revisión de número aleatorio
- 17. Cómo obtener el número de revisión SVN en cierta fecha o rango de fechas
- 18. ¿Cómo puedo obtener el número de revisión de Subversion en PHP?
- 19. ¿Cómo puedo obtener el último número de conjunto de cambios a través de la API TFS
- 20. Pantalla ASP.NET Número de revisión SVN
- 21. usando bash para obtener el número de revisión de la subversión
- 22. Cómo obtener el último día del mes
- 23. ¿Cómo obtener el último error (WSAGetLastError)?
- 24. Encriptador de código: obtener el último segmento de URI
- 25. Obtenga el último número de cheque (último ID del conjunto de cambios)
- 26. ¿Cómo inserto el último número de conjunto de cambios TFS en una página aspx?
- 27. Obtener el último día del mes?
- 28. ¿Puedo saber el número de revisión de una confirmación?
- 29. C# Manera efectiva de administrar el número de revisión
- 30. Incluir número de revisión SVN en el código fuente
este código no está funcionando para mí como debajo de 'using (Cliente de SvnClient = nuevo SvnClient()) {Información de SvnInfoEventArgs; Uri repos = new Uri ("svn: // india01/repository/branches/mybranch1"); client.GetInfo (repos, salida de información); lblMsg.Visible = verdadero; lblMsg.Text = (string.Format ("La última revisión de {0} es {1}", repos, info.Revision)); } ' cada vez que estoy ejecutando mi página web, sigue buscando solo .. cualquier solución para esto. – picnic4u
Si desea la última revisión para una ruta determinada (no el repositorio completo) puede devolver 'info.LastChangeRevision' en su lugar. – styfle