попробуйте следующее:
Sub test()
Dim S$: S = "1,2,3,4,5,2,2,5,6,6,6"
Dim Dic As Object: Set Dic = CreateObject("Scripting.Dictionary")
Dim Key As Variant
For Each Key In Split(S, ",")
If Not Dic.exists(Trim(Key)) Then Dic.Add Trim(Key), Nothing
Next Key
S = Join(Dic.Keys, ","): MsgBox S
End Sub
Фундаментальная идея управления версиями состоит в том, чтобы справиться несколько изменений из той же единицы информации. Идея резервного копирования состоит в том, чтобы скопировать последняя версия информации к безопасному месту - могут быть перезаписаны более старые версии.
В он - базовый уровень нет никакого различия между управлением версиями и резервными копиями. Система управления версиями является инкрементным резервным копированием каждого изменения, которое внесено. Основное, не распределенный VCS, как CVS, используемый одним разработчиком, просто создаст резервное копирование каждого изменения, которое внесено в текстовый файл.
, Где перемещения управления версиями вне основных резервных копий находится в дополнительных инструментах, которые обеспечиваются, чтобы сравнить версии, изменения слияния, внесенные несколькими разработчиками, версиями тега для выпуска или тестирования и провести другие операции, которые делают управление этими отдельными версиями возможным.
Требование абсолютного минимума для системы резервного копирования, чтобы иметь для него, чтобы использоваться для управления версиями является инкрементным резервным копированием и восстановлением для дискретных резервных объектов. Дополнительные функции (Сотрудничество, Ветвление, Различное Сравнение) могут сделать это лучшей системой VCS, но поскольку можно управлять версиями, пока у Вас может быть надежный доступ, чтобы получить и откатывать к инкрементно различным версиям объекта, которого Вы создали резервную копию, можно использовать его в качестве "VCS". Так, я предполагаю, что принципиальное различие между системой резервного копирования и системой управления версиями - то, что Вы используете систему, чтобы сделать. Особенно учитывая это Вы, если Вы требовали, могли бы использовать свой VCS в качестве Вашей системы резервного копирования.
Они - полностью несвязанные вещи. Думайте об управлении версиями как своего рода "машина времени", которую можно использовать для движения назад и вперед вовремя с кодом.
Я думаю, что можно сформировать аргументы или в пользу смешивающих резервных копий вместе с VCS, или для обработки их как совершенно отдельные. Но я думаю, что Вы не можете постараться не говорить об отдельных функциях VCS, поскольку это - функции что differntiate VCS от решения для резервного копирования:
В моих глазах, эти функции определяют. При игнорировании их VCS является по существу тем же как решением для инкрементного резервного копирования.
при рассмотрении распределенного VCS Вы могли бы найти более сильное понятие отслеживания ответвлений, чем в нераспределенном VCS. Таким образом, не может быть единственного ответвления головы/соединительной линии, но нескольких в любой момент времени. Это - что-то никакое решение для резервного копирования, с которым я столкнулся, рассматривает.
Возможно, они - существенно то же, пока Вы не добавляете "хорошее" слово.
"хороший" VCS имеет метаданные, как обеспеченные пользователями описания
, "хорошие" резервные копии распределяются географически
Управление версиями является в основном автоматизированной системой резервного копирования, которая позволяет многочисленным пользователям способствовать. Существует абсолютно больше функций, связанных с программным обеспечением как CVS, но да, это - система резервного копирования под капотом. Это не означает, что необходимо вручную скопировать вместо управления версиями использования, тем не менее, они находятся только в той же нише вычислений.
Управление версиями сохраняет историю измененных, и большинство систем управления версиями только хранит различие между двумя версиями, не всем. Резервные копии хранят все, и у них нет истории, если Вы не делаете это вручную. Резервные копии обычно неэффективны. Однако системы управления версиями не очень эффективны с двоичными файлами.
Я считал бы резервные копии очень простой системой управления версиями. Я не рекомендовал бы это для большого количества вещей, но если у меня есть маленький сценарий на моем домашнем компьютере, я использую датированные резервные копии вместо полнофункционального VCS. Это в порядке, потому что я - единственный для изменения файла, таким образом, я не должен волноваться о конфликтах или кто внес изменение.
По-моему, вот некоторые минимальные функции VCS, который не может быть в основном резервном копировании:
А VCS должен сохранить больше чем одну версию (где, поскольку резервное копирование могло бы сохранить только последний last-known-good)
из-за 1., каждая версия должна быть определена так или иначе (дата, тег, идентификатор версии)
А, VCS может обычно поддерживать больше чем одного параллельного пользователя
А, VCS для исходного кода будет обычно иметь поддержку ветвления, слияния, добавления комментариев и просмотра дельт
Существует, конечно, серая область между ними, однако я определил бы следующим образом:
Управление версиями инициировано действием 'записи', где, поскольку резервное копирование обычно инициировано временным интервалом.
Программное обеспечение для резервного копирования может быть настроено, чтобы работать каждую секунду и не хранить данные, если никакие изменения не произошли, но это недостаточно, чтобы это считали управлением версиями в моих глазах, так как для файла возможно измениться дважды за секунду.
Управление версиями является совместным, резервный просто снимок.
Пример: С управлением версиями два человека могут отредактировать тот же файл одновременно, и система достаточно умна для слияния изменений вместе. С резервным копированием, которое "выиграла бы версия файла?" Резервное копирование никогда не "объединяет" два различных резервных копий в одно "истинное" резервное копирование.
Вот некоторые
Управление версиями представляет целую историю изменений; резервные копии пытаются удостовериться, что Вы не теряете его.
Я вижу несколько принципиальных различий между резервными копиями и управлением версиями:
Однако единственное наиболее важное различие между резервными копиями и VCS - то, что в VCS изменения имеют значение . В резервном копировании сделана новая версия, потому что приблизительно , компьютер где-нибудь решил, что это было x
часы начиная с последнего резервного копирования; само изменение полностью бессмысленно . В VCS сделана новая версия, потому что приблизительно , человек решил, что эта версия имеет свое собственное значение , ее собственные идентификационные данные, отличающиеся от всех других версий. Так, в резервном копировании все версии равны (более точно: они одинаково бессмысленны), тогда как в VCS все версии специальны (у них есть свои собственные уникальные значения). В VCS изменения имеют фактическое история , где одно событие, ведомое к другому, в резервном копировании существует только строка несвязанных событий.
Тесно связанный с этим, понятие метаданные изменения . В VCS каждое изменение имеет автор , метка времени и, самое главное, сообщение о фиксации . Это сообщение о фиксации записывает , почему изменение было внесено, другими словами, оно записывает "значение", что я записал о в предыдущем абзаце.
история фиксации и особенно эти сообщения о фиксации являются самыми важными данными в репозитории VCS, не самим фактическим кодом! Эти метаданные абсолютно отсутствуют в резервном копировании.
Возможность выполнить ветвление и слияние разделяет системы управления версиями от простых резервных копий. "Несколько параллельных вселенных".
См. также Eric Sink, превосходного руководство версии/управления исходным кодом .
Основное отличие, которое выделяется для меня, заключается в том, что управление версиями позволяет нескольким пользователям легко работать над одном и тем же кодом. Резервные копии этого не делают.