Небольшой сценарий bash может помочь вам:
# content of script exec-async.sh
joblist=($(jobs -p))
while (( ${#joblist[*]} >= 3 ))
do
sleep 1
joblist=($(jobs -p))
done
$* &
Если вы позвоните:
. exec-async.sh sleep 10
... четыре раза, первые три вызова вернутся немедленно, четвертый вызов будет блокироваться, пока не будет запущено менее трех заданий.
Вам нужно запустить этот скрипт внутри текущего сеанса, добавив к нему префикс .
, потому что jobs
перечисляет только задания текущего сеанса.
sleep
внутри уродливо, но я не нашел способа дождаться первой работы, которая заканчивается.
Не совсем "окончательный", но я всегда игнорирую файлы .suo и .user, а также каталоги bin / и obj /
VisualSVN.com предоставляет эту информацию о настройке файлов, которые следует игнорировать, а следующий вопрос / ответы предоставляет примеры файлов, которые следует игнорировать.
Подключаемый модуль AnkhSVN для Visual Studio имеет список файлов, которые нужно игнорировать автоматически, и фиксирует только необходимые файлы.
По крайней мере, я так считаю. Мне потребовалось несколько попыток правильно настроить репозиторий, но с AnkhSVN фиксируется только подмножество файлов, которые TortoiseSVn хочет зафиксировать. Например, если игнорирует файлы, перекомпилированные при каждой сборке.
Вот мой список игнорирования из TortoiseSVN. VisualSVN требует TortoiseSVN и использует его настройки.
bin obj *.exe *.pdb *.suo _ReSharper.* *.user
Я не фиксировал никаких нежелательных (или не фиксировал никаких желаемых) файлов с этим параметром.
Если у вас есть ссылки на службы WCF, вам нужно только включить файлы Reference.cs
и Reference.svcmap
для каждой ссылки на службу.
В зависимости от ситуации вам может потребоваться исключить возможность контроля версий файла Web.config. Разным разработчикам могут потребоваться разные файлы конфигурации для веб-сайта.
Я бы рекомендовал создать отдельный каталог в вашем репозитории со справочным файлом конфигурации для веб-сайта и игнорировать * .config в фактическом каталоге проекта.
Используйте VisualSVN для первоначального «Добавить файлы в репозиторий», и он автоматически игнорирует ненужные вещи, такие как файлы suo и папки bin / obj.
Кроме того, чтобы покрыть проблемы чувствительности к регистру с «bin», мне пришлось добавить [Bb] в свой. Итак, у меня есть:
[Bb]in obj *.exe *.pdb *.suo _ReSharper.* *.user
Кроме того, эта ссылка объясняет, как обрабатывать исключения для конкретного проекта, чтобы другие пользователи получали такое же поведение исключения только для того же проекта, когда они его проверяют:
http: //svnbook.red- bean.com/en/1.1/ch07s02.html
Я использовал свойство svn: ignore в определенном каталоге, чтобы исключить определенный набор файлов, которые были скопированы в него (но я все еще хотел, чтобы сам каталог был в svn).