При создании ответвления в TortoiseSVN, что “голову”, “работа копирует”, и “определенные” средние изменения?

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

У меня есть решение для Visual Studio, которое состоит из 5 webAppliation проектов. Я должен вынуть один и работа по нему в ответвлении. Когда я пытаюсь перейти он, Это спрашивает меня одной из этих опций

  • главный пересмотр в репозитории
  • определенный пересмотр в репозитории
  • рабочий пересмотр копии

сопроводительный текст http://img25.imageshack.us/img25/3747/svnfile.jpg

Проблема 1: Что точно они? Я перепутан с "главным пересмотром" и "рабочей копией", поскольку они появляются то же мне.

сопроводительный текст http://img34.imageshack.us/img34/8079/svn2.jpg

Править:

Проблема 2: Почему наклон, мы переходим из Репозитория сам GUI, (был бы главный пересмотр)?

Проблема 3: Можете Вы перечислять шаги, должен был перейти из каталога!

8
задан Jon Seigel 2 April 2010 в 03:40
поделиться

4 ответа

Спецификация HTTP отличает POST и GET с точки зрения их намерения:

GET является idempotent: это для получения ресурса, не меняя ничего на сервере. Следовательно, повторная подача запроса GET должна быть абсолютно безопасной.

POST - не для обновления информации на сервере. Поэтому нельзя предположить, что повторно отправить запрос безопасно, поэтому большинство браузеров запрашивают подтверждение при попытке обновить запрос POST.

С точки зрения безопасности разницы нет. Возможно, ПОСТ более неясен, но это совсем другое дело. Безопасность должна быть добавлена на другом уровне, например SSL.

-121--1045075-

Другим решением, которое, однако, не позволяет полностью избавиться от классов, было бы сохранение всех частных функций в каком-то классе в качестве статических методов и наличие открытых функций в пространстве имен. Тогда разрешите общественным функциям использовать класс, используя friend :

#include <iostream>

// forward declaration of Module::PublicFn()
namespace Module {
    void PublicFn();
};

// static class for private functions (methods)
class ModulePrivates
{
private:
    // disallow instantiation by making constructor private
    ModulePrivates() { }
private:
    // example of a private function
    static void PrivateFn()
    {
        std::cout << "ModulePrivates::PrivateFn() called." << std::endl;
    }

    // allow public function to call PrivateFn()
    friend void Module::PublicFn();
};

// namespace for public functions
namespace Module
{
    void PublicFn()
    {
        std::cout << "Module::PublicFn() called." << std::endl;
        ModulePrivates::PrivateFn();
    }
};

Это явно только полпути, так как вы можете так же хорошо держать все в классе (что я предлагаю!). Тем не менее, вы получаете пространство имен с открытыми функциями, только один дополнительный класс (который, однако, не может быть создан и который выглядит пустым с «снаружи»)

. -121--4106744-

Редакция заголовка в репозитории является последней редакцией, которая была включена в систему управления версиями. Рабочая копия является редакцией, отраженной в текущем дереве. Поскольку во время работы люди, возможно, совершили действия, ваша рабочая редакция копии может не совпадать с редакцией HEAD .

Когда вы ветвитесь, вас просят перейти из определенного пункта . TSVN спрашивает вас, что бы вы хотели, чтобы этот пункт была, и у вас есть один из трех выбор:

  • , где вы работаете прямо сейчас (ваша рабочая версия копии)
  • , где репозиторий находится сейчас ( версия HEAD репозитория)
  • некоторые другие произвольные версии (конкретная версия)

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

Почему мы не можем перейти от самого GUI репозитария (может быть головной редакцией)?

Графический интерфейс TortoureSVN не представляет полный набор операций, которые возможны с Subversion. Subversion - это просто набор инструментов командной строки, а TSVN - обертка вокруг них. Если вы хотите полностью создать новую ветвь на сервере, просто используйте:

svn copy svn://example.com/repo/trunk/ svn://example.com/repo/branches/1.4

Можете ли Вы перечислить шаги, необходимые для ветвления из каталога?

Руководство TortouseSVN достаточно ясно в том, как это сделать. См. здесь .

14
ответ дан 5 December 2019 в 07:58
поделиться

Ваша рабочая копия может использовать другую версию в качестве ревизии головы репозитория. Я Вы оформляете определенный ревизию, который не является новейшим или людьми, совершающими репозиторий, пока вы имеете дело с вашей рабочей копией.

2
ответ дан 5 December 2019 в 07:58
поделиться
  • Пересмотр "ГОЛОВЫЙ" означает самое последнее. ревизия в репозитории.
  • конкретная ревизия в хранилище: здесь вы можете ввести любую понравившуюся вам ревизию. TortoiseSVN заполнит автоматически ревизию, в которой находится ваша рабочая копия. Но вы, конечно, можете изменить это (возможно, вы захотите пометить это ревизией, которую вы создали неделю назад). Ревизия, которую TortoiseSVN заполняет автоматически, часто является ревизией, в которой находится ваше хранилище (т.е. HEAD), особенно если вы часто обновляетесь. Но: Пока вы готовитесь сделать ответвление/метку, кто-то другой может зафиксировать что-то, что вы, возможно, не захотите включать в ответвление/метку. Вот почему безопаснее использовать эту ревизию вместо HEAD. Однако, если вы уверены, что в данный момент никто не совершает фиксацию, вы можете использовать HEAD здесь.
  • рабочая копия: используйте это, если у вашей рабочей копии есть локальные изменения, которые вы хотите включить в ответвление/метку. Эта опция полезна, если вы хотите сохранить свою работу в ответвлении (также известном как стеллаж).
3
ответ дан 5 December 2019 в 07:58
поделиться

Чтобы ответить на вопрос № 2, вы могут создать ветку из TortoiseSVN GUI. Используйте браузер для репозитория и найдите путь, с которого вы хотите обратить внимание, и затем щелкните правой кнопкой мыши папку и выберите «Копировать в ...». URL-адрес, который вы введете, станут URL-адресом, который вы хотите отразить на (обычно укоренившись в папке «Отраве»).

Это создаст ветку удаленно в репозитории, не требуя, чтобы вы сначала создали рабочую копию. Причина, по которой операция называется «копией» вместо «филиала», заключается в том, что операция ветвления в SVN действительно такая же создающая копию (это не отличная операция).

2
ответ дан 5 December 2019 в 07:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: