Frage

Ich möchte die Änderungen einer Arbeitskopie auf meinem Computer in das Repository übernehmen.Das Repository befindet sich in einer URL und ich mache das jetzt:

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);
    }
}

Aber es funktioniert nicht, wenn es fertig ist, wird die Datei hinzugefügt, aber nicht festgeschrieben.Warum?Danke!!!:)

War es hilfreich?

Lösung

FWIW, ich mache es so:

    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;
            }
        }
    }

Dann nenne ich es so:

  repo.Add("some folder");

  ...

  repo.Commit("base working copy");

Andere Tipps

Das ChangeList Argument funktioniert als Filter. Es werden nur Dateien betrieben, die als in den spezifischen ChangeLists markiert sind.

Für Commit können Sie einfach mehrere Ziele bereitstellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top