Взгляните на библиотеку partitions
,
library(partitions)
ps <- parts(10)
res <- ps[,apply(ps, 2, function(x) all(x[x>0] %% 2 == 0))] / 10
В любом VCS каждый обычно отмечает, когда Вы хотите снимок кода, чтобы быть сохраненными как ссылка для будущего. Вы переходите, когда Вы хотите разработать новую возможность, не нарушая текущий код.
Я всегда рассматриваю маркировки как ответвление ленивого человека. Если Вы собираетесь сделать что-то столь значительное, что оно требует маркировки полного источника затем, вероятно, лучше обозначить это с ответвлением так, чтобы все задачи, связанные с тем усилием, были в организованном месте только с произведенным кодом.
Ветвление очень мощно однако и что-то стоящее узнать о. TFS не является лучшим управлением исходным кодом, но это не хуже также. TFS действительно поддерживает понятие соединительной линии, от которой все ответвления вырастают также.
я рекомендовал бы этому как хорошее место читать на лучших практиках - по крайней мере, что касается TFS.
Маркировка в TFS является способом отметить набор файлов. Маркировка содержит набор файлов и версию файла. Это - очень недорогой способ отметить, какие версии файлов составляют сборку и т.д.
, ответвление А может считаться копией файлов (определенной версии) в другом каталоге в TFS (с TFS, знающим, что это - ответвление и будет помнить, какие файлы и версии это было ответвление).
, Поскольку Eric Sink говорит, , ответвление похоже на щенка . Это проявляет некоторую заботу и питание.
Лично, я часто маркирую, но редко перехожу. Я создаю маркировку для каждой сборки, но только перехожу, когда я знаю, что должен работать над исторической версией или что я должен работать в изоляции от основной строки кода. Можно создать ответвление из любого момента времени (и также маркировка) так, чтобы работы хорошо и означали, что у нас нет ответвлений, лежащих вокруг этого, не используются.
Hope, которая помогает,
Martin.