В решениях с несколькими проектами одна вещь я нашел очень полезными, должен иметь всю точку файлов AssemblyInfo к единственному проекту, который управляет управлением версиями. Таким образом, мои AssemblyInfos имеют строку:
[assembly: AssemblyVersion(Foo.StaticVersion.Bar)]
у меня есть проект с единственным файлом, который объявляет строку:
namespace Foo
{
public static class StaticVersion
{
public const string Bar= "3.0.216.0"; // 08/01/2008 17:28:35
}
}
Мой автоматизированный процесс сборки тогда просто меняет ту струну путем получения по запросу новой версии от базы данных и постепенного увеличения предпоследнего числа.
я только изменяю Номер основной сборки, когда featureset изменяется существенно.
я не изменяю версию файла вообще.
Исторически находятся пламенные материалы между раковинами C (CSH и TCSH) и Bash. Жалоба на вариантах CSH заключается в том, что они плохие для сценариев.
В тех госках я был Клинкой, я никогда не сделал любые автономные скрипты, где был выбран язык сценариев, потому что это то, что была моя раковина.
Я написал различные сценарии, которые могут широко разделить на две категории:
Сценарии в категории 1. почти всегда записываются в моем языке сценариев Shell (часто как функции, как я использую ZSH и ранее использовал Bash оба из которых функции поддержки).
скрипты в категории 2. написаны на то, что кажется наиболее эффективным (как время разработки, так и время работы). Я часто нахожусь, написав маленькие сценарии в Perl, C (скомпилирован, очевидно), Bash / ZSH / SH или что еще я хочу. Я сделал маленькую сценарию Python (но не большой), и даже прибегаю к Java по случаю (опять же скомпилирован - иш).
Так что я о чем я болтаю? Не основывайтесь на вашем выборе Shell по своим автономным возможностям сценариев. Выберите свою оболочку для своей утилиты для вас в качестве оболочки. Сценарий во всем остальном вы выбираете. Вы, вероятно, будете достаточно хорошими с Bash как ваша оболочка (хотя я люблю ZSH немного больше, ** / * Globbing - это красиво и несколько других маленьких вещей, но большинство скриптов, которые я написал для ZSH, рано идентичны их Bash коллеги).
если вы не можете найти какое-либо сравнение между zsh и fish, попробуйте их сами. Это единственный способ определить, какой из них вы предпочитаете, никто вам этого не скажет. Также определите значение продуктивности. Для меня это обилие модулей и внутренние возможности языка. Если вы начали с Python, дерзайте. Что касается оболочек, вы можете узнать о них меньше (не говоря уже о том, чтобы полностью забыть об этом), что касается, возможно, понимания ваших сценариев rc и других системных вещей и т. Д. Помимо этого, Python может делать то же, что и оболочка.
Вы будете наиболее продуктивны в среде, которую вы уже знаете. Я использовал bash годами, и все в порядке. Он завершает почти все , может использоваться с git , mercurial ...