Контроль один файл от Подверсии

Как будто вы пытаетесь получить доступ к объекту, который является null. Рассмотрим ниже пример:

TypeA objA;

. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException, что имеет смысл.

См. Также этот пример:

String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
313
задан Peter Mortensen 8 December 2011 в 03:28
поделиться

13 ответов

Простой ответ то, что Вы svn export файл вместо того, чтобы проверить его.

, Но это не могло бы быть тем, что Вы хотите. Вы могли бы хотеть работать над файлом и перепроверить его в, не имея необходимость загружать ГБ спама, в котором Вы не нуждаетесь.

, Если у Вас есть Подрывная деятельность 1.5 +, затем сделайте редкий контроль:

svn checkout <url_of_big_dir> <target> --depth empty
cd <target>
svn up <file_you_want>

Для более старой версии SVN, Вы могли бы извлечь выгоду из следующего:

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

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

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

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

393
ответ дан Peter Mortensen 23 November 2019 в 01:10
поделиться

С Подрывной деятельностью 1.5, становится возможно проверить (все) файлы каталога, не проверяя подкаталогов (различное - флаги глубины). Не совсем, что Вы попросили, но форма "меньше, чем все".

2
ответ дан jackr 23 November 2019 в 01:10
поделиться

Если Вы просто хотите файл без использования информации о пересмотре

svn export <URL>
2
ответ дан Ted 23 November 2019 в 01:10
поделиться

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

, Если необходимо вернуть его в после редактирования его, который мог бы быть немного более утомительным, но я уверен, могло бы быть svn import функция...

4
ответ дан Peter Mortensen 23 November 2019 в 01:10
поделиться
cd C:\path\dir
svn checkout https://server/path/to/trunk/dir/dir/parent_dir--depth empty
cd C:\path\dir\parent_dir
svn update filename.log

(Редактирование filename.log)

svn commit -m "this is a comment."
4
ответ дан 2 revs, 2 users 69%anon 23 November 2019 в 01:10
поделиться

Перейдите к repo-браузеру, щелкают правой кнопкой по файлу и используют 'Сохранить Как', я использую TortoiseSVN все же.

4
ответ дан Dave Anderson 23 November 2019 в 01:10
поделиться

, Если Вы хотите к представлению readme.txt в Вашем репозитории, не проверяя его:

$ svn кошка http://svn.red-bean.com/repos/test/readme.txt
Это - файл README. Необходимо считать это.

Подсказка: Если Ваша рабочая копия устарела (или у Вас есть локальные модификации), и Вы хотите видеть, что ГЛАВНЫЙ пересмотр файла в Вашей рабочей копии, svn кошка автоматически выберет ГЛАВНЫЙ пересмотр, когда Вы дадите ему путь:

кошка foo.c
$ Этот файл находится в моей локальной рабочей копии и имеет изменения, которые я внес.

$ svn кошка foo.c
Последний пересмотр только что из репозитория!

Источник

12
ответ дан sth 23 November 2019 в 01:10
поделиться

Используйте svn cat или svn export.

Для этого, Вы не должны выбирать рабочий каталог, но Вы не будете в состоянии фиксировать любые изменения, которые Вы вносите. Если необходимо внести изменения и фиксировать их, Вам нужен рабочий каталог, но Вы не должны выбирать его полностью. Контроль пересмотр, где каталог был все еще/почти пуст, и затем использует 'svn кошку' для извлечения файла от ГЛАВЫ.

53
ответ дан Nakilon 23 November 2019 в 01:10
поделиться

Попробуйте svn export вместо svn checkout. Это работает на единственные файлы.

причина ограничения состоит в том, что checkout создает рабочую копию, которая содержит метаинформацию о репозитории, пересмотре, атрибутах, и т.д. Те метаданные хранятся в подкаталогах, названных '.svn'. И единственные файлы не имеют подкаталогов.

107
ответ дан Peter Mortensen 23 November 2019 в 01:10
поделиться

Используя технику разреженного извлечения, вы МОЖЕТЕ извлечь конкретный файл, который уже извлечен, или существует ... с помощью простого трюка:

После проверки верхнего уровня вашего репозитория с помощью параметра «только этот элемент» в проводнике Windows вы ДОЛЖНЫ сначала щелкнуть правой кнопкой мыши файл, который необходимо обновить; в контекстном меню выберите Repo Browser; найдите этот файл СНОВА в обозревателе репозитория и щелкните правой кнопкой мыши. Теперь вы должны увидеть «обновить элемент до версии» в контекстном меню.

Я не уверен, является ли это недокументированной функцией или просто ошибкой. Мне потребовалось долгое время после работы, чтобы наконец найти этот трюк. Я использую TortoiseSVN 1.6.2.

1
ответ дан 23 November 2019 в 01:10
поделиться

A Эквивалентное решение принятого ответа TortoiseSVN (я написал это во внутреннем документе моей компании, поскольку мы недавно принимаем SVN). Я подумал, что было бы полезно поделиться здесь:

Извлечение одного файла: Subversion не поддерживает проверку отдельного файла, она поддерживает только проверку структур каталогов. (Ссылка: http://subversion.tigris.org/faq.html#single-file-checkout ). Это связано с тем, что для каждого каталога, который извлекается как рабочая копия, метаданные, касающиеся модификаций / ревизий файлов, сохраняются как внутренняя скрытая папка (.svn / _svn). Это не поддерживается в настоящее время (v1.6) для отдельных файлов.

Альтернативная рекомендуемая стратегия: вам нужно будет выполнить часть проверки каталога только один раз, после чего вы можете напрямую перейти и проверить свои отдельные файлы. Выполните редкую проверку родительской папки и структуры каталогов. Разреженная проверка - это проверка только структуры папок без заполнения файлов содержимого. Ссылка: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-checkout.html

Шаг 1 : перейдите в браузер репозитория

Шаг 2 : щелкните правой кнопкой мыши родительская папка в репозитории, содержащая все файлы, с которыми вы хотите работать, и выберите Checkout.

Шаг 3 : В новом всплывающем окне убедитесь, что каталог checkout указывает на правильное расположение на вашем локальном ПК. Также будет раскрывающееся меню с надписью «Глубина оформления заказа». Выберите «Только этот элемент» или «Непосредственные дочерние элементы, включая папки» в зависимости от ваших требований. Рекомендуется второй вариант, так как, если вы хотите работать с вложенной папкой, вы можете напрямую продолжить в следующий раз, иначе вам придется снова выполнить всю эту процедуру для вложенной папки.

Шаг 4 : Родительская папка (и) теперь должна быть доступна в вашей локально выбранной папке и теперь контролируется SVN (теперь должна присутствовать скрытая папка «.svn» или «_svn»). Теперь в репозитории щелкните правой кнопкой мыши отдельный файл, который вы хотите получить отдельно, и выберите параметр «Обновить элемент до ревизии». Теперь с единственным файлом можно работать и вернуть его в репозиторий.

Надеюсь, это поможет.

8
ответ дан 23 November 2019 в 01:10
поделиться

Этот вопрос освещен в:

http://subversion.tigris.org/issues/show_bug.cgi?id=823

Прикреплен скрипт, который позволяет вам извлечь один файл из svn, внести изменения и зафиксировать изменения обратно в репозиторий, но вы не можете запустить "svn up", чтобы извлечь остальную часть каталога. Он был протестирован с помощью svn-1.3, 1.4 и 1.6.

.
0
ответ дан 23 November 2019 в 01:10
поделиться

Ответ Стива Джессопа мне не помог. Я читал файлы справки для SVN, и если у вас просто есть изображение, вы, вероятно, не захотите возвращать его снова, если только вы не работаете в Photoshop, поэтому команда export лучше, чем checkout, поскольку она не имеет версии ( но это незначительно).

И --depth ARG должен быть не пустым, а файлами, чтобы получить файлы в ближайшем каталоге. Таким образом, вы получите все поля, а не одно, а пусто возвращает ничего из репозитория.

 svn co --depth files <source> <local dest>

или

svn export --depth files <source> <local dest>

Что касается других ответов, cat позволяет вам читать содержимое, которое подходит только для текста, а не для изображений всех вещей.

4
ответ дан 23 November 2019 в 01:10
поделиться
Другие вопросы по тегам:

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