Мы использовали это на нашем коде:
class String
def self.random(length=10)
('a'..'z').sort_by {rand}[0,length].join
end
end
максимальная поддерживаемая длина равняется 25 (мы только используем ее со значением по умолчанию так или иначе, так не была проблема).
Кто-то упомянул это 'a'.. 'z' является субоптимальным, если Вы хотите полностью постараться не генерировать оскорбительные слова. Одна из идей, которые мы имели, удаляла гласные, но Вы все еще заканчиваете с WTFBBQ и т.д.
Являются ли ваши теги легковесными тегами git или заполнены аннотированными тегами? hg convert
преобразует только аннотированные теги, но git по умолчанию создает облегченные. У меня возникла эта проблема при недавнем преобразовании одного из моих репозиториев. Вы можете проверить, что они собой представляют, следующим образом:
git ls-remote --tags .
Запуск hg convert
преобразует только теги, заканчивающиеся на ^ {}
, аннотированные. У вас есть 2 варианта:
Это довольно известная проблема. Вы можете попробовать исправить следующий файл /usr/lib/python2.6/site-packages/hgext/convert/hg.py (или где бы он ни находился), изменив его:
extra = {'branch': self.tagsbranch}
на:
extra = {'branch': 'default'}
, а затем снова преобразовав его.
РЕДАКТИРОВАТЬ: При более глубоком взгляде на положение вещей кажется, что может быть трудно - а возможно, и невозможно - делать то, что вы хотите. Тем более, чтобы сделать это правильно.
Поскольку у вас всего 8 тегов, подумайте о том, чтобы избавить себя от хлопот, создав файл .hgtags вручную. Вы сможете выяснить, что случилось с 'hg convert' позже (я тоже буду следить за этим).
Удача.
Одно из предложений, которое я видел в прошлом, - использовать svn в качестве промежуточного шага. И git, и hg имеют отличное двунаправленное преобразование svn.