SharpSVN не может зафиксировать (не рабочая копия)

Я новичок в SharpSVN. Я нашел много примеров из Интернета, связанных с SharpSVN. Также я сделал несколько успешных случаев, таких как Checkout

Но проблема в том, что я не могу вызывать функции фиксации и добавления:

Операция, которую я хочу сделать, это выбрать файл на моем ПК, а затем добавить в указанную папку SVN, также, если файл существует, его следует скопировать как новую версию.

Вот мой код:

private void button1_Click(object sender, EventArgs e)
{
    // FileUpload1.SaveAs("C:\\Users\\user\\Desktop\\crazycodeee\\" + FileUpload1.FileName);
    SvnClient client = new SvnClient();
    client.Authentication.Clear();
    client.Authentication.DefaultCredentials = new NetworkCredential("crazyufuk", "123456");
    SvnCheckOutArgs coArgs = new SvnCheckOutArgs();
    coArgs.Depth = SvnDepth.Infinity;
    // client.CheckOut(new Uri("http://localhost:8080/svn/crazycode/branches/"), "C:\\Users\\TTVERCIN\\Desktop\\crazycodeee");
    Add("C:\\Users\\user\\Desktop\\test_folderl\\");
    Commit("C:\\Users\\user\\Desktop\\crazycodeee", "AS"); 
}

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

public bool Commit(string path, string message)  //second
{
    using (SvnClient client = new SvnClient())
    {
        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;
        }
    }
}

person Erhan H.    schedule 31.07.2012    source источник


Ответы (1)


Чтобы добавить или зафиксировать файлы в репозиторий SVN, вам нужно будет проверить соответствующий репозиторий локально.

// client.CheckOut(new Uri("http://localhost:8080/svn/crazycode/branches/"), "C:\\Users\\TTVERCIN\\Desktop\\crazycodeee");

Закомментированный код извлекает код из репозитория в этот корень "C:\\Users\\TTVERCIN\\Desktop\\crazycodeee", но файлы, которые вы добавляете, должны быть его дочерними элементами.

В вашей линии

Add("C:\\Users\\TTVERCIN\\Desktop\\CSI_headerFooterMenu_prepaid_kurumsal\\");

Если CSI_headerFootermenu_prepaid_kurumsal где в папке crazycodeee (и вы закомментировали строку оформления заказа), то я подозреваю, что это сработает.

person Jeff Foster    schedule 31.07.2012
comment
Рекомендуемый формат API-интерфейса subversion не добавляет последний «\» к путям, если это не требуется. Но SharpSvn удалит его для вас, если вы все равно добавите его. (Но пути, которые вы получаете через уведомления, списки и т. Д., Не будут иметь этого) - person Bert Huijben; 06.09.2012