Implement restore_snapshot latest commit on branch detection

This commit is contained in:
Kristóf Tóth 2018-08-06 14:19:18 +02:00
parent 782df25bee
commit cbb807dfb4
1 changed files with 12 additions and 0 deletions

View File

@ -10,6 +10,7 @@ from uuid import uuid4
from dateutil import parser as dateparser
# TODO: gitignore
class SnapshotProvider:
def __init__(self, directory, git_dir):
self._classname = self.__class__.__name__
@ -125,6 +126,9 @@ class SnapshotProvider:
def restore_snapshot(self, date):
commit = self._get_commit_from_timestamp(date)
branch = self._last_valid_branch
if commit == self._latest_commit_on_branch(branch):
commit = branch
self._checkout(commit)
def _get_commit_from_timestamp(self, date):
@ -153,6 +157,14 @@ class SnapshotProvider:
self.__last_valid_branch = self._branch
return self.__last_valid_branch
def _latest_commit_on_branch(self, branch):
return self._get_stdout((
'git', 'log',
'-n', '1',
'--pretty=format:%H',
branch
))
@property
def all_timelines(self):
return self._branches