python [python] [gitpython] gitでファイルの更新日付をコミット日时に调整
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python [python] [gitpython] gitでファイルの更新日付をコミット日时に调整相关的知识,希望对你有一定的参考价值。
# coding: utf-8
"""
ファイルの更新日付をコミット日時に調整します。
注意)本スクリプトは、予め pull を実施後に実行されることを想定しています。
なので、リモート周りのコマンドは使っていません。コミット履歴もローカルコミット履歴をみます。
(つまり、ls-filesを使って、ls-remoteは利用しません。)
動作には、python-dateutilとgitpythonが必要です。
$ pip intall python-dateutil gitpython
"""
import datetime
import logging
import os
import pathlib
import dateutil.parser
import git
logging.basicConfig(
level=logging.INFO,
format=' %(asctime)s - %(levelname)s - %(message)s',
handlers=[
logging.FileHandler('log.txt', mode='w', encoding='utf-8')
])
try:
base_dir = pathlib.Path('/path/to/your/repo')
os.chdir(base_dir)
logging.info(f'ベースディレクトリ: {base_dir.absolute()}')
g = git.cmd.Git()
for f in g.ls_files().splitlines():
commit_time = g.log('-n1', f'{f}', pretty='format:%ci')
commit_time_dt = dateutil.parser.parse(commit_time)
commit_timestamp = commit_time_dt.timestamp()
cur_dt = datetime.datetime.fromtimestamp(os.stat(f).st_mtime)
logging.info(f'\tファイル : {f}')
logging.info(f'\tコミット日時: {commit_time}')
logging.info(f'\t 日付更新: {str(cur_dt)} --> {str(commit_time_dt)}')
os.utime(f, (commit_timestamp, commit_timestamp))
except Exception as e:
logging.error(f'エラー発生:{e}')
以上是关于python [python] [gitpython] gitでファイルの更新日付をコミット日时に调整的主要内容,如果未能解决你的问题,请参考以下文章
Python代写,Python作业代写,代写Python,代做Python
Python开发
Python,python,python
Python 介绍
Python学习之认识python
python初识