Как получить основную основную репликацию с Подверсией?

Я не думаю, что это возможно со стандартной scala. Но вы можете написать некоторые вспомогательные методы, которые сделали бы что-то вроде этого доступным:

implicit class Applied1[T](val t: T) extends AnyVal {
  def applied[R](f: T => R): R = f(t)
}

implicit class Applied2[T1, T2](val t: (T1, T2)) extends AnyVal {
  def applied[R](f: (T1, T2) => R): R = f(t._1, t._2)
}

implicit class Applied3[T1, T2, T3](val t: (T1, T2, T3)) extends AnyVal {
  def applied[R](f: (T1, T2, T3) => R): R = f(t._1, t._2, t._3)
}

// ... and 19 more implicit classes: Applied4 to Applied22

И тогда вы можете использовать его следующим образом:

def minus(a: Int): Int = -a
def plus(a: Int, b: Int): Int = a + b
def plus(a: Int, b: Int, c: Int): Int = a + b + c

scala> 5 applied minus
res0: Int = -5

scala> (1, 2) applied plus
res1: Int = 3

scala> (1, 2, 3) applied plus
res2: Int = 6

Но это может быть немного более сложным для использования с универсальными функциями или функциями с неявными аргументами:

def mul[T : Numeric](a: T, b: T): T = {
  import Numeric.Implicits._
  a * b
}

scala> (1.5, 2.5) applied (mul(_, _))
res3: Double = 3.75
13
задан Nic Wise 6 October 2009 в 16:21
поделиться

5 ответов

Я рекомендовал бы SVK или мерзавец-svn .

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

мерзавец-svn был бы (я думать), требуют, чтобы внешние разработчики использовали мерзавца. Я предпочитаю его, но я отказался бы продвинуть это на других.

SVK, однако, позволяет внешним разработчикам продолжать использовать svn. Так как внутренний repo только доступен внутренне, счет по внутренним расчетам или пользователь должны были бы обработать периодическую синхронизацию (задание крона будет, вероятно, работать).

Вот расширенное практическое руководство на Wiki SVK: UsingSVKAsARepositoryMirroringSystem

6
ответ дан 2 December 2019 в 01:22
поделиться

Простота обычно является лучшим способом, и это кажется, что у Вас уже есть простое решение: Используйте репозиторий SVN вне брандмауэра.

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

Сообщенный мне, если я пропускаю часть Ваших требований.

Другая мысль..., если у Вас есть и внутренние и внешние экземпляры SVN..., что должно остановить их обоих выделение того же changelist идентификатора одновременно в различных целях? Если Вы ищете децентрализованное решение, необходимо смотреть на МЕРЗАВЕЦ , а не SVN.

3
ответ дан 2 December 2019 в 01:22
поделиться

Хм... хранение двух repos в синхронизации друг с другом нетривиально, я думаю. Это включило бы в основном превращение SVN в Подвижный или Мерзавца.

1
ответ дан 2 December 2019 в 01:22
поделиться

Одна вещь, которую Вы могли попробовать, состоит в том, чтобы копировать repo на уровне файла. Я использую FolderShare (, http://www.foldershare.com - работает на Windows и Mac) для подобного сценария, хотя я копирую его только в целях резервирования и не попытался подключить использование SVN к копии.

-1
ответ дан 2 December 2019 в 01:22
поделиться

http://wandisco.com/subversion/multisite/

Subversion MultiSite использует Уникальная репликация WANdisco технология для немедленной синхронизации Репозитории Subversion, подключенные через глобальная сеть (WAN). Пользователи в каждое место знакомит с местностью скорость сети (LAN) для операции чтения и записи. Subversion MultiSite также предоставляет непрерывное горячее резервирование и самовосстановление возможности, которые автоматизируют катастрофу восстановление, так что время простоя практически исключена.

-1
ответ дан 2 December 2019 в 01:22
поделиться
Другие вопросы по тегам:

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