Объедините DVCS с визуальным безопасным источником

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

Для проверки типов аргументов функции вам нужно только проверить, что данные аргументы являются подтипами объявленных типов аргументов. Результат также должен быть подтипом объявленного типа. Здесь вы на самом деле проверяете подтипы.

Контраст / ко-дисперсия параметров & amp; результат учитывает только то, когда вы хотите проверить, является ли данный тип функции подтипом другого типа функции. Поэтому, если параметр имеет тип Function[A1, ... ,B], тогда аргумент должен быть типом функции Function[C1, ..., D], где A1 <: C1 ... и D <: B.

Это рассуждение не относится к Scala и применимо к другим статически типизированным языкам с подтипами.

16
задан Jon Seigel 23 May 2010 в 04:26
поделиться

1 ответ

WBlasko

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

1) Получите последнюю версию проекта VSS (я поместил все проекты VSS в vss):

c:\vss\projectA

2A) Инициализировать с помощью Mercurial

cd vss\projectA
C:\vss\projectA>hg init

2B) Клонировать проект на место где он может быть изменен по желанию

hg clone vss\projectA myProjects\projectA

3) Получите последние изменения из копии VSS (пропустите, если вы пришли из 1 и 2)

C:\myProjects\projectA>hg pull
C:\myProjects\projectA>hg update
(solve conflicts if any)

4) Работайте по желанию с клонированной версией. Позже перенесите свою работу в копию vss:

C:\myProjects\projectA>hg push
(don't run hg update yet, wait for VSS latestes version)

5) Теперь выполните извлечение всех файлов в проект VSS

6) Запустите «hg update» в проекте VSS, чтобы объединить ваши изменения с последними изменениями VSS .

C:\vss\projectA>hg update
(if there are conflicts, resolve them)

7) Зафиксируйте изменения

C:\vss\projectA>hg commit

8) Выполните проверку VSS (снятие блокировок с других пользователей) Вернитесь к шагу 3. повторите шаги 3-8 до бесконечности ...; -)

Таким образом, вы можете работать с хорошей системой контроля версий, сохраняя при этом возможность «общаться» с устаревшими проектами. Вы также сможете насладиться: а) Нет проблем с заблокированными файлами б) вы можете поделиться своим репозиторием с другими, которые знают, как использовать Hg c) создавать ветки и т. д.

Просто будьте осторожны, сначала обновите / разрешите конфликты, протестируйте, а затем выполните проверку VSS

Ура, Луис

13
ответ дан 30 November 2019 в 23:00
поделиться
Другие вопросы по тегам:

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