Подверсия по сравнению с хранилищем [дубликат]

В Java все переменные, которые вы объявляете, на самом деле являются «ссылками» на объекты (или примитивы), а не самими объектами.

При попытке выполнить один метод объекта , ссылка просит живой объект выполнить этот метод. Но если ссылка ссылается на NULL (ничего, нуль, void, nada), то нет способа, которым метод будет выполнен. Тогда runtime сообщит вам об этом, выбросив исключение NullPointerException.

Ваша ссылка «указывает» на нуль, таким образом, «Null -> Pointer».

Объект живет в памяти виртуальной машины пространство и единственный способ доступа к нему - использовать ссылки this. Возьмем этот пример:

public class Some {
    private int id;
    public int getId(){
        return this.id;
    }
    public setId( int newId ) {
        this.id = newId;
    }
}

И в другом месте вашего кода:

Some reference = new Some();    // Point to a new object of type Some()
Some otherReference = null;     // Initiallly this points to NULL

reference.setId( 1 );           // Execute setId method, now private var id is 1

System.out.println( reference.getId() ); // Prints 1 to the console

otherReference = reference      // Now they both point to the only object.

reference = null;               // "reference" now point to null.

// But "otherReference" still point to the "real" object so this print 1 too...
System.out.println( otherReference.getId() );

// Guess what will happen
System.out.println( reference.getId() ); // :S Throws NullPointerException because "reference" is pointing to NULL remember...

Это важно знать - когда больше нет ссылок на объект (в пример выше, когда reference и otherReference оба указывают на null), тогда объект «недоступен». Мы не можем работать с ним, поэтому этот объект готов к сбору мусора, и в какой-то момент VM освободит память, используемую этим объектом, и выделит другую.

16
задан Community 23 May 2017 в 11:59
поделиться

12 ответов

Используя обоих 'в гневе' я выбрал бы Subversion (с TortoiseSVN) по Хранилищу каждый день.

, Когда я пошел от Подрывной деятельности до Хранилища, это - то, что я заметил :

  • не Может сделать становления последним из всего, что я не изменил из поля, на одном легком шаге
  • не Может легко видеть ничего, что изменилось
  • попытки Хранилища, по умолчанию, сделать все, что я не проверил только для чтения
  • , я должен проверить вещи
  • , Это действительно не спешит загружаться (перепрыгните через клиент) в противоположность тому, чтобы всегда быть там в проводнике
  • Клиентская более неловкая навигация - чем использование Проводника
  • Легче выдержать сравнение с более старыми версиями
  • Программа проверки правописания при вводе комментариев при регистрации
  • Все было более быстрым и легче!

, Очевидно, часть этого до способа, которым было настроено Хранилище, но Вы получаете идею.

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

Обновление
отметьте дату, это было oiginally отправлено. И poducts изменились и были улучшены geatly, так как я oiginally записал это.

15
ответ дан 30 November 2019 в 15:14
поделиться

Я использую Хранилище, таким образом, я хотел бы исправить одну ошибку в Вашем списке функций:

Хранилище имеет плагин VS, но оно только работает, если Вы собираетесь работать в режиме контроля.

Не верный - я не уверен, из которой версии это было включено, но можно выполнить хранилище в режиме Edit|Merge|Commit в Visual Studio

, я также добавил бы, что Хранилище использует SQL Server MS, поскольку это - репозиторий - делает резервные копии легкими.

10
ответ дан 30 November 2019 в 15:14
поделиться

Подрывная деятельность также имеет плагины VisualStudio:

8
ответ дан 30 November 2019 в 15:14
поделиться

Исходный веб-сайт механизма имеет сравнение . Однако я не предложил бы ни одного. Если Ваше перемещение в новый репозиторий Вы хотите посмотреть на распределенную систему управления версиями.

Подобные Монотонность , Мерзавец и Базар действительно подняли планку с точки зрения производительности.

5
ответ дан 30 November 2019 в 15:14
поделиться

Подрывная деятельность позволяет Вам отмечать файлы как 'должен-блокировку', в этом случае контроль (блокировка), регистрация (фиксируйте с автоматическим, разблокировали), работы. AnkhSVN визуализирует это точно так же, как Регистрация VSS выезда.

Подрывная деятельность имеет:

  • TortoiseSVN для Windows Explorer
  • AnkhSVN , свободный настоящий Поставщик SCC для Visual Studio. (не завершаются все же, но улучшение каждый день)
  • VisualSVN, TortoiseSVN как интеграция для Visual Studio (Коммерческой)
  • SvnBook, большой & онлайн; бесплатное руководство

Подрывная деятельность получит более эффективный протокол HTTP в 1,6 или 1.7 (Происходящая работа). Это могло бы позволить создать плагин IIS.

Посмотрите книга подрывной деятельности по ветвлению и слиянию в Подрывной деятельности .

4
ответ дан 30 November 2019 в 15:14
поделиться

Подрывная деятельность имеет блокировки также. Мне никогда не были нужны они, все же.

3
ответ дан 30 November 2019 в 15:14
поделиться

Подрывная деятельность имеет большую стороннюю поддержку. Хранилище имеет всего несколько вещей.

, Конечно, где Подрывная деятельность сделала, чтобы третья сторона поддерживала, Хранилище имеет 1-ю партийную поддержку, так как Вы купили его. По моему опыту, информация из первых рук (от производителей) имеет тенденцию быть лучше, чем 14 форумов, распространенных по миру? Хотя у нас теперь есть Так себе эта точка, может быть бесшумным.:)

2
ответ дан 30 November 2019 в 15:14
поделиться

SVN имеет истинное ветвление http://svnbook.red-bean.com/en/1.1/ch04.html , ветвление просто обрабатывается по-другому, чем большинство систем управления исходным кодом.

1
ответ дан 30 November 2019 в 15:14
поделиться

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

Комментарии создателей могут быть предвзятые и неуверенные, просто ли они пытаются предложить только свой обходной путь.

0
ответ дан 30 November 2019 в 15:14
поделиться

Я потратил несколько лет на использование (и администрирование) Subversion на предыдущей работе, а последние три года использовал Убежище на моей нынешней работе. На данный момент я отчаянно хочу уйти от Vault и вернуться к Subversion (или, возможно, к такому инструменту, как git или Mercurial).

У нас было много проблем с производительностью и надежностью (Vault не всегда забирает файлы, которые были изменены, и иногда будет настаивать на том, что вы не изменяли файл, когда вы это сделали), но это может произойти вплоть до (длинной) истории нашего репозитория и того, как мы справлялись с ветвлением в прошлом. Я бы сказал, что если бы он был лучше спроектирован, то все это не имело бы значения, но если вы не делаете с ним дурацких вещей, возможно, у вас не будет проблем, которые у нас были.

Тем не менее, есть некоторые фундаментальные дизайнерские решения, которые я не могу простить:

  • модель рабочей папки (похожая на VSS) чрезмерно ограничительна; если я хочу проверить один и тот же код в нескольких местах локально, я смогу
  • убрать инструмент слияния
    • Мне не нужно проходить через мастер из семи шагов каждый раз, когда мне нужно объединить изменения
    • не может выбрать несколько ревизий для объединения
    • добавленные / удаленные файлы не объединяются в вашу рабочую папку, пока вы не зафиксируете изменения, что означает, что вы не можете проверить что все в порядке до регистрации
  • нет эквивалента "svn switch"; переключение извлеченной папки на новое место в репозитории сводит с ума Vault

. В конечном счете, Vault - гораздо менее гибкий инструмент, чем Subversion, хотя эта нехватка гибкости означает, что его проще использовать. Если у вас есть команда разработчиков, которые привыкли к VSS, и вы не собираетесь требовать значительную часть своего инструмента управления версиями, Vault, вероятно, будет хорошим выбором. Однако, привыкнув к гибкости Subversion, я обнаружил, что использование Vault вызывает разочарование.

12
ответ дан 30 November 2019 в 15:14
поделиться

Одна функция, встроенная в Vault. что Subversion не имеет встроенной функции, если Vault может быть настроен так, чтобы сохранять временную метку измененных файлов. Это функция, от которой я действительно могу извлечь пользу. В качестве обходного пути Subversion позволяет конфигурации устанавливать измененную временную метку на время фиксации, что достаточно для большинства моих сценариев. Чтобы извлечь из этого пользу, я должен выполнить фиксацию, затем удалить свою рабочую копию, а затем выполнить обновление, чтобы временные метки стали временными метками фиксации, чтобы я мог развернуть файлы и сопоставить их метки времени с метками времени Subversion. Есть предложения использовать скрипты или еще что-то для хранения измененных временных меток в свойствах, но я не знаю, успешно ли это сделал кто-нибудь, и если да, то я не знаю, насколько надежным будет этот обходной путь.

3
ответ дан 30 November 2019 в 15:14
поделиться

Существует множество инструментов (отслеживание ошибок, непрерывная интеграция), которые интегрируются с Subversion. В случае с хранилищем не многие инструменты поддерживают его.

2
ответ дан 30 November 2019 в 15:14
поделиться
Другие вопросы по тегам:

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