Управление версиями для графики

Вот моя реализация (см. gist ):

Шаг 1: Кодирование для захвата A не является подтипом B

trait NotSubTypeOf[A, B] 

Примечание : Мы можем использовать нотацию infix для записи A NotSubTypeOf B вместо NotSubTypeOf[A, B]

. Шаг 2: Доказательство для любых двух произвольных типов A и B, A не является подтипом B

implicit def isSub[A, B]: A NotSubTypeOf B = null

Шаг 3: Определите неоднозначные импликации для запуска ошибки компиляции в случае, когда A является подтипом B (или A =: = B)

implicit def iSubAmbig1[A, B >: A]: A NotSubTypeOf B = null
implicit def iSubAmbig2[A, B >: A]: A NotSubTypeOf B = null

. Шаг 4: Определите тип лямбда для типа отрицания:

type Not[T] = {
  type L[U] = U NotSubTypeOf T
}

С kind-projector это можно сделать гораздо читабельнее.

Шаг 5: Готово !

def iDontLikeStrings[A: Not[String]#L](a: A) = {
  println(a)
}

iDontLikeStrings(23)   // compiles
iDontLikeStrings(true) // compiles
//iDontLikeStrings("hello") // does not compile

Сообщение об ошибке компилятора для последней строки может быть улучшено в Scala 2.12, которое адресовано SI-6806 .

Кроме того, все это встроено в Shapeless .

48
задан Kristopher Johnson 6 March 2017 в 02:26
поделиться

11 ответов

Да, наличие художественных активов в управлении версиями очень полезно. Вы получаете способность отследить историю, откатывать изменения, и у Вас есть единственный источник, чтобы сделать резервные копии с. Следует иметь в виду, что художественные активы НАМНОГО больше, таким образом, Ваш сервер должен иметь большое дисковое пространство & сетевая пропускная способность.

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

я услышал некоторые хорошие вещи [приблизительно 111] Alienbrain также, это, действительно кажется, имеет очень гладкий UI.

16
ответ дан cregox 7 November 2019 в 12:42
поделиться

Мы сохраняем двоичные файлы и изображения в управлении версиями, с помощью По необходимости. Это является большим!

Мы сохраняем много художественных активов, и это масштабируется хорошо для большого количества больших файлов. Это распознает двоичные файлы, те, которые не могут быть diffed и хранят их, поскольку полный файл копирует в бэкэнде.

Это имеет P4V (межплатформенный визуальный браузер), и система миниатюры, таким образом, файлы изображений видны в браузере.

1
ответ дан Mark Harrison 7 November 2019 в 12:42
поделиться

@Damian - Положительная сторона у меток и перекрестных ссылок. Это правда; в то время как у меня нет работы со многими разработчиками на проекте разработки программного обеспечения, я работал на компанию, которая имела отдел дизайна, и знайте, что это - проблема. Разработчики все еще (постоянно) ищут идеальную систему для обработки этого вида вещи. Я думаю, что это больше подходит для отдела дизайна по совместному доступу, поиску и управлению версиями, и т.д. ко всем активам - где существует бизнес-стимул не перестроить колесо везде, где/каждый раз, когда возможно. Я не думаю, что это запросило бы ориентированный на проект способ как метки, и перекрестные ссылки не будут вполне как применимые.

1
ответ дан Peter Meyer 7 November 2019 в 12:42
поделиться

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

1
ответ дан Peter Meyer 7 November 2019 в 12:42
поделиться

Мы используем подрывную деятельность. Просто поместите папку под/trunk/docs для аккомпанементов и сделайте, чтобы разработчики проверили, и согласитесь на ту папку. Работы как чемпион.

1
ответ дан Matt Hinze 7 November 2019 в 12:42
поделиться

Интересный вопрос. У меня нет набора опыта, работающего непосредственно с разработчиками на проекте. Когда я имею, это было через договорный вид соглашения, куда они "поставили" дизайн. Я сделал часть своей собственной дизайнерской работы и для веб-сайтов и для настольных приложений, и хотя я не использовал управление исходным кодом в прошлом, я нахожусь в процессе реализации SVN для моего собственного использования, поскольку я начинаю делать некоторую заплаченную работу без контракта. Я намереваюсь использовать версию/управление исходным кодом точно способ, которым я был бы с исходным кодом. Это просто становится другой папкой в соединительной линии проекта. Путем я работал без управления исходным кодом, должен создать активы папка, в который файлы всех носителей, которые являются эквивалентами исходного кода, находятся. Мне нравится думать о PSD's Photoshop как графический исходный код , в то время как вывод JPEG для веб-сайта или иначе скомпилированная версия .

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

2
ответ дан Peter Meyer 7 November 2019 в 12:42
поделиться

@lomaxx TortoiseSVN включает программу под названием TortoiseIDiff, который надеется быть разностью для изображений. Я не использовал его, но выглядит интригующим.

2
ответ дан xanadont 7 November 2019 в 12:42
поделиться

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

4
ответ дан Pedro 7 November 2019 в 12:42
поделиться

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

4
ответ дан 7 November 2019 в 12:42
поделиться

Мы также просто помещаем двоичные файлы в управление исходным кодом. Мы используем Мерзавца, но это применялось бы точно также к Подрывной деятельности.

Одно предложение, которое я имею, должно использовать SVGs, если это возможно, потому что Вы видите фактические различия. С двоичными файлами (большинство других форматов изображения), лучшей, которую можно получить, является история версий.

5
ответ дан James A. Rosen 7 November 2019 в 12:42
поделиться

Я определенно подверг бы графику управлению версиями. Разность не могла бы быть очень полезной из различного инструмента как diffmerge, но Вы можете все еще контроль две версии диаграммы и просматривать их рядом для наблюдения различий.

я не вижу оснований, почему результирующая графика не должна быть сохранена в той же системе управления версиями, которую используют кодеры. Однако при создании графики с помощью файлов PSD или файлов PDN, Вы могли бы хотеть создать отдельный репозиторий для тех, поскольку у них есть различный контекст к фактическому концу jpeg или gif, который производится и развертывается с разработанным приложением.

2
ответ дан RustyTheBoyRobot 7 November 2019 в 12:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: