Потоки Perforce: использование потоков задач

У меня есть требование создать дочерний поток, который будет выбирать только определенные папки из mainline (родительского) потока. При создании дочернего потока для достижения этого я ограничиваю представление, используя share/isolate/import, успешно способный создавать дочерние потоки, которые интересуют только код, который меня интересует.

Но я просмотрел несколько руководств по потокам и нашел кое-что в облегченных потоках (потоках задач), которые используются для частичного создания потоков из родительского. В моем сценарии мне действительно нужно использовать этот lightweight streams? Каковы основные преимущества и ограничения использования этих облегченных потоков по сравнению с обычным подходом, как я упоминал выше?


person kunal    schedule 11.02.2018    source источник


Ответы (1)


Цель потоков задач не в том, чтобы создавать потоки «частично» — вы уже сделали это со своими share/import путями. Не чини то, что не сломано!

Потоки задач построены так, чтобы быть недолговечными и легко архивируемыми после завершения связанной задачи (с помощью команды «выгрузить»). Ограничения потоков задач описаны в документации здесь:

https://www.perforce.com/perforce/doc.current/manuals/p4v/Content/P4V/streams.task.html

а именно, что они не могут быть reparented и они не могут иметь детей. Если вы используете потоки задач как кратковременные потоки одной задачи (как следует из названия «поток задач», поток задач предназначен для одной задачи), эти ограничения обычно не будут проблемой. Если вы попытаетесь использовать поток задач в качестве основной линии разработки, у вас возникнут проблемы.

Если ваш процесс разработки включает создание новой ветки для краткосрочной задачи (например, отдельное исправление, относящееся к конкретной ветке), и у вас есть много таких задач, потоки задач могут быть полезны из-за их легкой очистки и небольших накладных расходов ( когда поток задач выгружается, он удаляется из БД, что означает, что вы не накапливаете ненужные БД с течением времени, когда создаете и отказываетесь от них).

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

(Можете ли вы сказать, что я видел немало случаев, когда люди пытались использовать потоки задач абсолютно для всего, потому что они «круто звучат»? Не поддавайтесь искушению!)

person Samwise    schedule 11.02.2018