Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion src/borg/manifest.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,19 @@ def get_first_and_last_archive_ts(archives_list):
timestamps = [x.ts for x in archives_list]
return min(timestamps), max(timestamps)

if not archives:
return archives

now = archive_ts_now()
earliest_ts, latest_ts = get_first_and_last_archive_ts(archives)

until_ts = calculate_relative_offset(older, now, earlier=True) if older is not None else latest_ts
from_ts = calculate_relative_offset(newer, now, earlier=True) if newer is not None else earliest_ts
archives = [x for x in archives if from_ts <= x.ts <= until_ts]

if not archives:
return archives

earliest_ts, latest_ts = get_first_and_last_archive_ts(archives)
if oldest:
until_ts = calculate_relative_offset(oldest, earliest_ts, earlier=False)
Expand Down Expand Up @@ -136,7 +142,7 @@ def list(
regex = re.compile(regex + match_end)
archives = [x for x in archives if regex.match(x.name) is not None]

if any([oldest, newest, older, newer]) and len(archives) > 0:
if any([oldest, newest, older, newer]):
archives = filter_archives_by_date(archives, oldest=oldest, newest=newest, newer=newer, older=older)
if not consider_checkpoints:
archives = [x for x in archives if ".checkpoint" not in x.name]
Expand Down
7 changes: 7 additions & 0 deletions src/borg/testsuite/archiver/check_cmd.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,13 @@ def test_date_matching(self):
self.assert_in("archive2", output)
self.assert_not_in("archive3", output)

# check for output when timespan older than earliest archive is given. Issue #1711
output = self.cmd(
f"--repo={self.repository_location}", "check", "-v", "--archives-only", "--older=9999m", exit_code=0
)
for archive in ("archive1", "archive2", "archive3"):
self.assert_not_in(archive, output)

def test_missing_file_chunk(self):
archive, repository = self.open_archive("archive1")
with repository:
Expand Down