def summ(a, b):
return a[0] + b[0], a[1] + b[1]
x = 5, (2, 0), (1, 1)
def position(x):
i = 1
new_list = [x[i]]
while i < x[0]:
new_list += summ(new_list[i - 1], x[2]),
i = i + 1
return new_list
print(position(x))
Протестировано, и ВЫВОД является
[(2, 0), (3, 1), (4, 2), (5, 3), (6, 4)] [112 ]
Если фиксация является частичной (зафиксированы не все изменения в рабочем дереве), то эта программа make даст неверные результаты, поскольку она проверяет рабочую копию, а не поэтапную копию.
Один из способов сделать это может быть следующим:
git diff --cached --name-only --diff-filter=ACMR | xargs git checkout-index --prefix=$TMPDIR/ --
find $TMPDIR -name '*.php' -print | xargs -n 1 php -l
Который сделает копию подготовленных изображений в рабочее пространство, а затем запустит на них тестовую команду. Если какой-либо из файлов включает в себя другие файлы в сборке, вам, возможно, придется воссоздать все поэтапное изображение в тестовом дереве, а затем протестировать измененные файлы там (см .: Хук предварительной фиксации Git: измененные / добавленные файлы ).
Если Вам установили php5-cli, можно записать предварительную фиксацию в PHP и использовать синтаксис более знакомое с.
Просто сделайте что-то больше как.
#!/usr/bin/php
<?php /* Your pre-commit check. */ ?>
Я сожалею, если бы это - offtopic, но не является Вами предполагаемый запустить некоторые автоматизированные тесты (который подразумевал бы, что код не имеет никаких синтаксических ошибок) прежде, чем сделать фиксацию?