Инструмент для миграции от SVN до TFS

Если кто-то должен использовать sscanf() для обнаружения переполнения int, а не надежного strtol(), существует громоздкий способ.

Используйте более широкий тип и ограничение ширины, чтобы предотвратить переполнение при сканировании.

bool isint_via_sscanf(const char *s) {
  long long y;
  int n = 0;
  if (sscanf(s, "18%lld %n", &y, &n) != 1) {  // Overflow not possible
    return false;  // Conversion failed 
  }

  if (y < INT_MIN || y > INT_MAX) {
    return false; // Outside int range
  }

  if (s[n]) {
    return false;  // Trailing junk
  }

  return true;  
}

Недостаточно на редких платформах, где INT_MAX > 1e18.

Также неверно возвращает ввод, такой как "lots of leading space and/or lot of leading zeros 000123", как недействительный.

Более сложный код, использующий sscanf(), может устранить эти недостатки, но лучший подход - strto*().

27
задан Jonathan Nixon 24 February 2014 в 20:10
поделиться

4 ответа

Можно попробовать codeplex проект SVN к Инструменту Миграции TFS .

9
ответ дан Binoj Antony 28 November 2019 в 05:44
поделиться

Поскольку проект codeplex, который был принят в качестве первоначального ответа, сейчас закрыт, я подумал, что было бы полезно отметить, что Microsoft имеет ряд перечисленных здесь инструментов преобразования: Инструменты миграции управления исходным кодом .

15
ответ дан Alfred Myers 28 November 2019 в 05:44
поделиться

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

2
ответ дан Teun D 28 November 2019 в 05:44
поделиться
-1
ответ дан 28 November 2019 в 05:44
поделиться
Другие вопросы по тегам:

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