Производительность в подверсии по сравнению с SourceSafe

Я подозреваю, что это не полный ответ, но это слишком долго, чтобы оставлять комментарии. Создайте список словарей:

data = []
c.execute("""SELECT * FROM system_info ORDER BY pi_id DE0SC LIMIT 1""")
headers = [item[0] for item in c.description] # List comprehension
for row in c.fetchall():
    data.append([dict(zip(headers, row)])

Это запустит запрос один раз и выдаст список словарей, которые вы можете использовать для доступа к значениям по ключу. В существующем состоянии нет реальной необходимости перебирать строки, поскольку у вас есть LIMIT 1, но это масштабируется.

5
задан Riri 27 October 2008 в 09:57
поделиться

8 ответов

Регистрацию VSS называют фиксацией в SVN. Эта операция много раз быстрее, поскольку SVN только передаст изменения (иначе "разность"), Вы сделали в файлы, в то время как VSS отправит целый файл и различие это на сервере.

выезд в SVN (получение начальной буквы workingcopy) является несколько медленным в comparsion к другим системам, если Вы используете http (s) и имеете большое (> 100 МБ) полный размер файлов. SVN худший случай является партией файлов и каталогов как передача HTTP, будет намного медленнее, чем большие, единственные файлы.

Однако я сомневаюсь, что VSS будет быстрее, чем SVN. Общая производительность SVN быстрее, более устойчива (никакие повреждения базы данных) и легче понять, чем VSS.

Хорошими Инструментами является TortoiseSVN (Плагин Проводника), smartSVn (VSS-подобная) и командная строка (гибкая) как Tigraine, добавленный в моем comments:AnkhSVN (Интеграция Visual Studio) и subversive/subclipse для затмения IDE

13
ответ дан 18 December 2019 в 05:45
поделиться

Можно также найти этот вопрос релевантным.

Производительность

Существенное различие в том, сколько времени отдельные операции берут в SVN и VSS, находится в принципе SVN: время операции должно быть пропорционально размеру изменения, не размеру проекта. Это лучше всего замечено с, Получают последнюю версию (VSS) по сравнению с Обновлением (SVN). VSS "Добираются, последняя версия" всегда выполняет итерации по всем файлам в проекте, проверяя их состояние. Это берет очень долго. По сравнению с этим SVN проверяет историю проекта и только управляет файлами, которые были затронуты. В типичном сценарии это огромная победа, поскольку чаще всего только несколько файлов затронуты. Даже когда файл затронут, передавание изменения намного быстрее в SVN, чем в VSS, потому что только изменения передаются, по сравнению с целым файлом в VSS. То же верно для Фиксаций (Регистрация), где снова SVN намного быстрее, делая небольшие изменения в огромных файлах. Это относится к двоичным файлам также, поскольку SVN может сделать differencing с теми также (использующий XDelta в качестве его ядра differencing механизм).

Большинство важных инструментов

Для разработчика Visual Studio самые важные инструменты:

  • TortoiseSVN - получите доступ к репозиторию с помощью Windows Shell
  • AnkhSVN - Интеграция Visual Studio
  • некоторые также рекомендуют VisualSVN как интеграцию VS, но я думаю с AnkhSVN 2, интеграция уже достаточно хороша

Я даже иду до высказывания наличия TortoiseSVN и AnkhSVN, Вам не нужны "Инструменты ядра подверсии", установленные вообще. Базовые инструменты командной строки чрезвычайно полезны, например, для автоматизации, но для общей повседневной работы я никогда не использую их и устанавливаю их, не нужно для TortoiseSVN или AnkhSVN для работы.

Веб-доступ

Доступ по сети поддерживается исходно SVN и поддерживается чрезвычайно хорошо. Для VSS Вам нужны внешние приложения для этого и в то время как они не плохи, они не 1:1 к исходной среде, и их скорости все еще несколько недостает.

Как преобразовать

VSS2SVN является инструментом, который выполняет преобразование довольно быстро и обоснованно хорошо. На основе нашего опыта я настоятельно рекомендовал бы не использовать "стабильную" сборку, использовать ежедневный снимок вместо этого - это может обработать много объектов в истории, которые делают предыдущую сборку, переставшую работать полностью.

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

8
ответ дан 18 December 2019 в 05:45
поделиться

Удаленный доступ намного легче с Подверсией.

Если Вы не заботитесь о сохранении Вашей истории, перемещающийся от VSS до подверсии также легко. Просто необходимо вручную удалить привязку управления исходным кодом (*.scc файлы).

Что касается инструментов, Вы, вероятно, захотите получить TortoiseSVN и возможно плагин для использования с Visual Studio (если это будет тем, что Вы используете) как Анк (свободный) SVN.

4
ответ дан 18 December 2019 в 05:45
поделиться

Если Вы действительно будете заботиться о хранении Вашей истории, то http://www.pumacode.org/projects/vss2svn преобразует от одного репозитория до другого.

Я имел очень ограниченный успех с этим, и это - одна из причин, мы все еще используем безопасный источник.

2
ответ дан 18 December 2019 в 05:45
поделиться

Visual SourceSafe создается сверх совместного доступа к файлам. Таким образом, когда Вы заказываете в файле, все сделано с помощью файловой системы. Таким образом вместо того, чтобы просто отправить текст файлов на сервер и все происходящее удаленно доступы VSS физические блоки от диска, когда accessesing vss сервер. Включая поиск файла в каталоге совместно используемых дисков и т.д... Это примерно в 10 раз медленнее, чем клиент-серверный сделанный на заказ протокол.

Существует продукт под названием SourceOffSite, который добавляет более быстрый фронтэнд к базе данных VSS, которая делает VSS usuable по более медленным ссылкам.

Tony

2
ответ дан 18 December 2019 в 05:45
поделиться

TortoiseSVN является действительно очень хорошим клиентом, и я использую это в сочетании с Trac на сервере, чтобы иметь веб-доступ к репозиторию и хорошей Wiki / система билета.

LiveCD - ссылка.

0
ответ дан 18 December 2019 в 05:45
поделиться

На основе моего опыта это будет намного быстрее.

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

Некоторые вещи намного быстрее. В частности, при регистрации / фиксация большого количества файлов производит предупреждающее сообщение, что-то вроде "этого займет много времени и не может на самом деле работать? Вы хотите попытаться сделать это так или иначе?" (Это не точно, что это говорит).

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

1
ответ дан 18 December 2019 в 05:45
поделиться

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

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

0
ответ дан 18 December 2019 в 05:45
поделиться
Другие вопросы по тегам:

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