Распечатайте текущий стек вызовов из метода в коде Python

Как Вы создаете новый проект/репозиторий?

репозиторий мерзавца А является просто каталогом, содержащим специальное предложение .git каталог.

Это отличается от "централизованных" систем управления версиями (как подрывная деятельность), где "репозиторий" размещается на удаленном сервере, который Вы checkout в "рабочую копию" каталог. С мерзавцем Ваша рабочая копия репозиторий.

Просто работает git init в каталоге, который содержит файлы, которые Вы хотите отследить.

, Например,

cd ~/code/project001/
git init

Это создает .git (скрытая) папка в текущем каталоге.

Для создания нового проекта работайте git init с дополнительным аргументом (название каталога, который будет создан):

git init project002

(This is equivalent to: mkdir project002 && cd project002 && git init)

, Чтобы проверить, ли текущий текущий путь в репозитории мерзавца, просто выполнение git status - если это не репозиторий, это сообщит "фатальный: Не репозиторий мерзавца"

Вы могли также перечислить .git каталог и проверить, что он содержит файлы/каталоги, подобные следующему:

$ ls .git
HEAD         config       hooks/       objects/
branches/    description  info/        refs/
<час>

, Если по любой причине Вы желаете "de-мерзавцу" репозитория (Вы хотите прекратить использовать мерзавца для отслеживания того проекта). Просто удалите .git каталог на основном уровне репозитория.

cd ~/code/project001/
rm -rf .git/

Осторожность: Это уничтожит весь история пересмотра, весь Ваши теги, все , мерзавец сделал. Это не коснется "текущих" файлов (файлы, которые можно в настоящее время видеть), но предыдущие изменения, удаленные файлы и так далее будут неисправимы!

256
задан Nickolay 26 April 2015 в 08:31
поделиться

2 ответа

Вот пример получения стека с помощью модуля traceback и его печати:

import traceback

def f():
    g()

def g():
    for line in traceback.format_stack():
        print(line.strip())

f()

# Prints:
# File "so-stack.py", line 10, in <module>
#     f()
# File "so-stack.py", line 4, in f
#     g()
# File "so-stack.py", line 7, in g
#     for line in traceback.format_stack():

Если вы действительно хотите распечатать стек только в stderr, вы можете использовать :

traceback.print_stack()

Или для вывода на стандартный вывод (полезно, если вы хотите сохранить перенаправленный вывод вместе), используйте:

traceback.print_stack(file=sys.stdout)

Но, получив его через traceback.format_stack () , вы сможете делать с ним все, что захотите.

293
ответ дан 23 November 2019 в 02:44
поделиться
import traceback
traceback.print_stack()
89
ответ дан 23 November 2019 в 02:44
поделиться
Другие вопросы по тегам:

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