Со следующей командой:
:%s/^M$//g
Заставляют ^M
появляться тип Ctrl V тогда Ctrl M . Ctrl V говорит Vim брать следующий символ, вводимый буквально.
SVN redbook здесь включает много информации о макетах для разных типов проектов и о том, как ими управлять.
Вы также можете использовать хуки / триггеры / внешние элементы для извлечения данных из независимого репо под названием «третья сторона» '. Поэтому, когда разработчик проверяет одно репо, он получает и третью часть. Есть масса способов отделить проблемы, но представить единое репо от компонентных.
Удачи
Возможно, стоит использовать движок сборки, например hudson или круиз-контроль. Рабочий процесс немного отличается - теги создаются после сборки, но вы можете получить дополнительные модули, которые дадут вам некоторый контроль над этим. Дело в том, что вся работа по разработке сделана за вас, и вы получаете приличный фреймворк для своих ночных сборок, и вы получаете хороший веб-интерфейс для управления и мониторинга всего.
Лично я бы поместил несколько внешних определений в магистраль вставить соответствующие сторонние библиотеки в соответствующие места. Таким образом, когда вы меняете версию сторонней библиотеки, вы вносите изменения в магистраль и не должны изменять сценарии сборки. Это также означает, что вы можете создавать более старые версии, просто проверяя соответствующий ствол / тег / ветку. Будьте осторожны - просто нанесите их на ствол, рассыпание их может привести к убийству.
Я бы также наложил репо примерно так:
project
/trunk
/branches
/tags
3rdparty
Просто потому, что это дает вам больше возможностей для добавления большего количества проектов верхнего уровня в какой-то момент. Это позволяет вам управлять разными проектами полностью независимо - и вы все равно можете использовать внешние элементы для ссылки на нужные версии от одной к другой, если есть зависимости - это прекрасно останавливает изменения в одном проекте, незаметно нарушая / изменяя зависимые проекты.
Это возможно чтобы сделать это также с использованием отдельных репозиториев, что нормально, но в этом случае я бы с самого начала поместил отдельный раздел 3rdparty в отдельное репо.
Почему бы вам не переместить стороннюю сторону в магистраль? когда каждое ваше ветвление переходит в ветку. И, очевидно, вы не будете менять сторонние материалы в ветке, потому что ваша ветка закодирована на основе существующих сторонних материалов.
Я не уверен, что помечаю то, о чем вы говорите. Вы имеете в виду номер версии? Если это номер версии, пропустите этот скрипт и пометьте сборку.
Если «несколько каталогов» представляют собой отдельные компоненты, которые вы хотите версировать независимо, тогда вы должны иметь каждый в своем собственный репозиторий, чтобы их можно было пометить отдельно. Но если это все один автономный проект (например, если вы обычно будете маркировать и разветвлять все компоненты вместе), то вы, вероятно, можете поместить весь код в один и тот же репозиторий.
Вам следует рассмотреть возможность использования externals для сторонних артефактов.
Вам следует рассмотреть возможность использования внешних для сторонних артефактов.
Вам следует рассмотреть возможность использования внешних для сторонних артефактов.
Мой скрипт проверяет транк, изменяет файлы (корректирует номера версий в файлах AssemblyInfo.cs и т. Д.), А затем маркирует их. Если вам не нужно каким-либо образом изменять файлы, то сначала можно использовать теги.
В остальном, ваша установка мне по крайней мере кажется хорошей.