Каково различие между управлением конфигурацией и управлением версиями?

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

module type Type = sig
  type t
end

module Char = struct
  type t = char
end

module List (X:Type) = struct
  type t = X.t list
end

module Maybe (X:Type) = struct
  type t = X.t option
end

(* In the following, I decided to omit the redundant
   single constructors "Id of ...", "Compose of ...", since
   they don't help in OCaml since we can't use inference *)

module Id (X:Type) = X

module Compose
  (F:functor(Z:Type)->Type)
  (G:functor(Y:Type)->Type)
  (X:Type) = F(G(X))

let l : Compose(List)(Maybe)(Char).t = [Some 'a']

module Example2 (F:functor(Y:Type)->Type) (X:Type) = struct
  (* unlike types, "free" module variables are not allowed,
     so we have to put it inside another functor in order
     to scope F and X *)
  let iso (a:Compose(Id)(F)(X).t) : F(X).t = a
end
31
задан friedo 29 October 2009 в 19:47
поделиться

4 ответа

Контроль версий необходим, но недостаточен для управления конфигурацией. Контроль версий происходит в каком-то центральном или распределенном репозитории, но ничего не говорится о том, где какая-либо конкретная версия развертывается или используется.

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

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

27
ответ дан 27 November 2019 в 22:15
поделиться

Version control is saving files and keeping different versions of them, so you can see the change over time.

Configuration management is generally referred to as an overall process of which keeps track of what version of the code is on what server, how the servers are setup (and the install scripts to do so at many places). It is how process of what happens after the code goes into source control and how gets to deployed to the servers/desktops etc.

9
ответ дан 27 November 2019 в 22:15
поделиться

Управление конфигурацией включает, но не ограничивается, контроль версий.

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

Контроль версий специально применяется к компьютерным файлам. Сюда входят документы, электронные таблицы, электронные письма, исходный код и многое другое.

19
ответ дан 27 November 2019 в 22:15
поделиться

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

0
ответ дан 27 November 2019 в 22:15
поделиться
Другие вопросы по тегам:

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