MongoDB фактически хранит миллины даты как int (64), как предписано http://bsonspec.org/#/specification
Однако, это может становится довольно запутанным, когда вы извлекаете даты, поскольку клиентский драйвер будет создавать экземпляр объекта даты с его собственным местным часовым поясом. Драйвер JavaScript в консоли mongo, безусловно, сделает это.
Итак, если вы заботитесь о своих часовых поясах, убедитесь, что знаете, что это должно быть, когда вы вернетесь. Это не должно иметь большого значения для запросов, поскольку оно все равно будет соответствовать одному и тому же int (64), независимо от того, в какой временной зоне находится объект даты (надеюсь). Но я бы определенно делал запросы с объектами фактической даты (не строки), и пусть драйвер делает свое дело.
Вы можете просто проанализировать вывод журнала cvs log -h
. Для каждого файла будет раздел с именем Symbolic names :
. Все перечисленные там теги с номером ревизии, который содержит ноль в качестве последней, но одну цифру, являются ветвями. Например :
$ cvs log -h
Rcs file : '/cvsroot/Module/File.pas,v'
Working file : 'File.pas'
Head revision : 1.1
Branch revision :
Locks : strict
Access :
Symbolic names :
1.1 : 'Release-1-0'
1.1.2.4 : 'Release-1-1'
1.1.0.2 : 'Maintenance-BRANCH'
Keyword substitution : 'kv'
Total revisions : 5
Selected revisions : 0
Description :
===============================================
В этом примере Maintenance-BRANCH
явно ветвь, потому что ее номер редакции указан как 1.1. 0 .2. Это также иногда называют магическим номером ревизии ветки.
Это также вызовет теги, но теги и ветви в CVS в основном одинаковы.
$cvs.exe rlog -h -l -b module1
с Wincvs (клиент Gui для Windows) это тривиально, щелчок правой кнопкой мыши даст вам любые ветви и теги, которые есть у файлов.
Через оболочку вы можете использовать модуль cvs log -h -l.
У меня есть небольшая коллекция «удобных» функций оболочки korn, одна из которых выбирает теги для данного файла. Я сделал быструю попытку адаптировать его, чтобы делать то, что вы хотите. Он просто выполняет некоторую проверку / вывод в лог (r) и выводит список версий, имеющих «.0». в них (что указывает на то, что это тег ветви):
get_branch_tags()
{
typeset FILE_PATH=$1
TEMP_TAGS_INFO=/tmp/cvsinfo$
/usr/local/bin/cvs rlog $FILE_PATH 1>${TEMP_TAGS_INFO} 2>/dev/null
TEMPTAGS=`sed -n '/symbolic names:/,/keyword substitution:/p' ${TEMP_TAGS_INFO} | grep "\.0\." | cut -d: -f1 | awk '{print $1}'`
TAGS=`echo $TEMPTAGS | tr ' ' '/'`
echo ${TAGS:-NONE}
rm -Rf $TEMP_TAGS_INFO 2>/dev/null 1>&2
}
Как быстрый хак:) То же самое справедливо и для rlog.
cvs log -h | awk -F"[.:]" '/^\t/&&$(NF-1)==0{print $1}' | sort -u
Улучшенная версия по bdevay, скрывающая нерелевантный вывод и выравнивающая результат по левому краю:
cvs log -h 2>&1 | awk -F"[.:]" '/^\t/&&$(NF-1)==0{print $1}' | awk '{print $1}' | sort -u