File: //usr/lib/python3/dist-packages/tracopt/versioncontrol/git/__pycache__/git_fs.cpython-310.pyc
o
�k�`�� � @ s� d dl m Z d dlZd dlZd dlmZ d dlmZ d dlmZm Z m
Z
mZmZ d dl
mZmZmZ d dlmZmZmZ d dlmZmZ d d lmZmZmZ d d
lmZ d dlmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z' d dl(m)Z)m*Z*m+Z+ d d
l,m-Z- d dl.m/Z/ d dl0m1Z1 d dl2m3Z3 G dd� de*�Z4G dd� de+�Z5dd� Z6dd� Z7dd� Z8dZ9dd� Z:dd� Z;G d d!� d!e�Z<G d"d#� d#e�Z=G d$d%� d%e!�Z>G d&d'� d'e �Z?G d(d)� d)e�Z@G d*d+� d+e�ZAdS ),� )�datetimeN)�ISystemInfoProvider)�cached)�
BoolOption� IntOption�
ListOption�
PathOption�Option)� Component� TracError�
implements)�FixedOffset�to_timestamp�format_datetime)�Markup�tag)�exception_to_unicode�shorten_line�
to_unicode��_) � Changeset�Node�
Repository�IRepositoryConnector�InvalidRepository�NoSuchChangeset�
NoSuchNode�RepositoryManager�IRepositoryProvider)�CACHE_YOUNGEST_REV�CachedRepository�CachedChangeset)�IPropertyRenderer)�Chrome)�IWikiSyntaxProvider)�PyGITc @ sR e Zd ZdZdd� Zdd� Zdd� Zdd � Zd
d� Zdd
� Z dd� Z
ddd�ZdS )�GitCachedRepositoryzGit-specific cached repository.c C �
| � |�S �N�� short_rev��self�rev� r/ �C/usr/lib/python3/dist-packages/tracopt/versioncontrol/git/git_fs.py�display_rev+ �
zGitCachedRepository.display_revc C � | j �|�S r) )�reposr+ �r- �pathr/ r/ r0 r+ . � zGitCachedRepository.short_revc C s. |s| � � S | jj�|�}|d u rt|��|S r) )�get_youngest_revr4 �git� verifyrevr �r- r. �normrevr/ r/ r0 �
normalize_rev1 s z!GitCachedRepository.normalize_revc C s t �| �pd S r) )r! r8 �r- r/ r/ r0 r8 9 s z$GitCachedRepository.get_youngest_revc C r3 r) )r4 �
child_revsr, r/ r/ r0 r? = r7 zGitCachedRepository.child_revsc # s� � t jt��||�dd� d�D ]6\}}t|�}t|�dkr#|d V qdd� |D �� � rE� �fdd �� D �}t|�D ]}� �|�V q:� s,qd S )
Nc S s | j S r) )�date)�csetr/ r/ r0 �<lambda>C s z4GitCachedRepository.get_changesets.<locals>.<lambda>)�key� r c S s i | ]}|j |�qS r/ )r. )�.0rA r/ r/ r0 �
<dictcomp>H � z6GitCachedRepository.get_changesets.<locals>.<dictcomp>c s. g | ]}t � fd d��j�|�D ��s|�qS )c 3 s � | ]}|� v V qd S r) r/ )rE �r)� rev_csetsr/ r0 � <genexpr>K s � �z@GitCachedRepository.get_changesets.<locals>.<listcomp>.<genexpr>)�anyr4 r? �rE r. �rI r- r/ r0 �
<listcomp>J s
�
�z6GitCachedRepository.get_changesets.<locals>.<listcomp>)� itertools�groupbyr! �get_changesets�list�len�sorted�pop)r- �start�stoprC �csets�revsr. r/ rM r0 rQ @ s"