Pregunta

Quiero enviar los cambios de una copia de trabajo en mi computadora al repositorio.El repositorio está en una URL y estoy haciendo esto ahora:

using (SvnClient client = new SvnClient())
{
    SvnCommitArgs ca = new SvnCommitArgs();

    ca.ChangeLists.Add(workingcopydir + filename);

    ca.LogMessage = "Change";

    client.Add(workingcopydir + filename);



    try
    {
        client.Commit(workingcopydir, ca);

        //, ca, out resultado
    }
    catch (Exception exc)
    {
        MessageBox.Show(this, exc.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
}

Pero no funciona, cuando termina el archivo se agrega pero no se confirma.¿Por qué?¡¡¡Gracias!!!:)

¿Fue útil?

Solución

FWIW, lo hago así:

    public bool Add (string path)
    {
        using(SvnClient client = NewSvnClient()){
            SvnAddArgs args = new SvnAddArgs();
            args.Depth = SvnDepth.Empty;
            args.AddParents = true;
            return client.Add(path, args);
        }
    }

    public bool Commit (string path, string message)
    {
        using(SvnClient client = NewSvnClient()){
            SvnCommitArgs args  = new SvnCommitArgs();

            args.LogMessage     = message;
            args.ThrowOnError   = true;
            args.ThrowOnCancel  = true;

            try { 
                return client.Commit(path, args);
            } catch(Exception e){
                if( e.InnerException != null ){
                    throw new Exception(e.InnerException.Message, e);
                }

                throw e;
            }
        }
    }

Entonces lo llamo así:

  repo.Add("some folder");

  ...

  repo.Commit("base working copy");

Otros consejos

El argumento Changelist funciona como un filtro. Solo se operarán los archivos que están marcados para estar en el Changelists específicos.

Para el compromiso, solo puede proporcionar múltiples objetivos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top