- Главная
- Информатика
- Поиск ошибок и причин изменений в коде
Содержание
- 2. Команда hg bisect Примеры ситуаций, когда полезно использовать команду hg bisect: - Самая последняя версия программного
- 3. Команда hg bisect Команда hg bisect работает по шагам: 1. Вы запускаете Ваш бинарный тест Если
- 4. Команда hg bisect hg bisect --reset hg bisect --bad hg bisect --good 10 Testing changeset 22:e9e43d57c12e
- 5. Команда hg log Допустим, Вам нужно полное описание изменений или список измененных файлов, чтобы узнать, та
- 6. Команда hg log Или ситуация, когда вы хотите видеть и описание, и то как изменялось содержимое.
- 7. Команда hg annotate Допустим, Вы знаете ревизию, в которой допущена ошибка. И хотите узнать, чей код
- 9. Скачать презентацию
Слайд 2Команда hg bisect
Примеры ситуаций, когда полезно использовать команду hg bisect:
- Самая последняя
Команда hg bisect
Примеры ситуаций, когда полезно использовать команду hg bisect:
- Самая последняя
- Вы исправили ошибку в спешке, и теперь пришло время закрыть запись об ошибке в багтрекере вашей команды. Багтрекер данных требует ID ревизии, когда вы закрываете записи, но Вы не помните, в какой ревизии исправили ошибку.
2
Слайд 3Команда hg bisect
Команда hg bisect работает по шагам:
1. Вы запускаете Ваш бинарный тест
Команда hg bisect
Команда hg bisect работает по шагам:
1. Вы запускаете Ваш бинарный тест
Если неуспешен, запускаете команду hg bisect --bad
2. Mercurial использует вашу информацию, чтобы решить, какая ревизия для тестирования следующая
3. Он обновляет рабочий каталог до этой ревизии и процесс повторяется сначала до тех пор пока hg bisect не идентифицирует уникальный набор изменений, который знаменует собой точку, где Ваш тест перешел из ”успешного” в “неуспешный”
Опции:
-r (--reset) сбросить bisect.
-g (--good) отметить ревизию как “хорошую”
-b (--bad) отметить ревизию как “плохую”
-s (--skip) пропустить тестовый набор изменений
-e (--extend) расширить диапазон bisect
3
Слайд 4Команда hg bisect
hg bisect --reset
hg bisect --bad
hg bisect --good 10
Testing changeset 22:e9e43d57c12e
Команда hg bisect
hg bisect --reset
hg bisect --bad
hg bisect --good 10
Testing changeset 22:e9e43d57c12e
0 files updated, 0 files merged, 12 files removed, 0 files unresolved
[ваше тестирование]
hg bisect --bad
Testing changeset 16:a20d4936611f (12 changesets remaining, ~3 tests)
0 files updated, 0 files merged, 6 files removed, 0 files unresolved
[ваше тестирование]
hg bisect --good
...
hg bisect --good
The first bad revision is:
changeset: 22:e9e43d57c12e
user: Bryan O'Sullivan
date: Thu Feb 02 14:09:26 2012 +0000
summary: buggy changeset
hg bisect --reset
4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Слайд 5Команда hg log
Допустим, Вам нужно полное описание изменений или список измененных файлов,
Команда hg log
Допустим, Вам нужно полное описание изменений или список измененных файлов,
Команда hg log с ключом -v (--verbose) предоставляет такую возможность.
5
Пример:
$ hg log -v -r 3
changeset: 3:0272e0d5a517
user: Bryan O'Sullivan
date: Sat Aug 16 22:08:02 2008 +0200
files: Makefile
description:
Get make to generate the final binary from a .o file.
Слайд 6Команда hg log
Или ситуация, когда вы хотите видеть и описание, и то
Команда hg log
Или ситуация, когда вы хотите видеть и описание, и то
6
Пример:
$ hg log -v -p -r 2
changeset: 2:fef857204a0c
user: Bryan O'Sullivan
date: Sat Aug 16 22:05:04 2008 +0200
files: hello.c
description:
Introduce a typo into hello.c.
diff -r 82e55d328c8c -r fef857204a0c hello.c
--- a/hello.c Fri Aug 26 01:21:28 2005 -0700
+++ b/hello.c Sat Aug 16 22:05:04 2008 +0200
@@ -11,6 +11,6 @@
int main(int argc, char **argv)
{
- printf("hello, world!\n");
+ printf("hello, world!\");
return 0;
}
Слайд 7Команда hg annotate
Допустим, Вы знаете ревизию, в которой допущена ошибка. И хотите
Команда hg annotate
Допустим, Вы знаете ревизию, в которой допущена ошибка. И хотите
7
Пример:
$hg annotate -unl aFile
jim 1519:477: a = 4
bob 1518:468: b = 5
max 1496:402: return a
Опции:
-u (--user) выводит автора
-n (--number ) выводит номер ревизии
-l (--line-number ) выводит номер строки
-d (--date) выводит дату