profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/aawsome/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.

aawsome/mopidy-snapcast 13

Mopidy Snapcast Extension

aawsome/restic 3

Fast, secure, efficient backup program

aawsome/rust-server 3

A REST server built in rust for use with restic

aawsome/cobra 0

A Commander for modern Go CLI interactions

aawsome/mopidy-webevent 0

Webevent Mopidy Extension

aawsome/pdfshuffler-ng 0

Advancing the development of PDF-Shuffler..

aawsome/pyRenamer 0

pyRenamer is an application to change the names of several files at the same time. This fork currently includes renames based of file creation/modification dates, as well as improved removal of accent characters.

aawsome/syncthing 0

Open Source Continuous File Synchronization

pull request commentrestic/restic

Improve recover command

I'm fine with postponing the '--split' or something else to a future PR.

Please remove the --split and the then obsolete --dry-run and --tags options. The factored out createSnapshot function can stay though.

Is removed. Hope these small improvements are nevertheless helpful!

aawsome

comment created time in 25 days

Pull request review commentrestic/restic

Improve recover command

 func runRecover(gopts GlobalOptions) error { 	trees := make(map[restic.ID]bool)  	for blob := range repo.Index().Each(gopts.ctx) {-		if blob.Blob.Type != restic.TreeBlob {-			continue+		if blob.Type == restic.TreeBlob {+			trees[blob.Blob.ID] = false 		}-		trees[blob.Blob.ID] = false 	} -	cur := 0-	max := len(trees)-	Verbosef("load %d trees\n\n", len(trees))-+	Verbosef("load %d trees\n", len(trees))+	bar := newProgressMax(!gopts.Quiet, uint64(len(trees)), "trees loaded") 	for id := range trees {-		cur++-		Verbosef("\rtree (%v/%v)", cur, max)--		if !trees[id] {-			trees[id] = false-		}- 		tree, err := repo.LoadTree(gopts.ctx, id) 		if err != nil { 			Warnf("unable to load tree %v: %v\n", id.Str(), err) 			continue 		}  		for _, node := range tree.Nodes {-			if node.Type != "dir" || node.Subtree == nil {-				continue+			if node.Type == "dir" && node.Subtree != nil {

Very true :+1: Let's see when I'll find some time for it :wink:

aawsome

comment created time in 25 days

PullRequestReviewEvent

push eventaawsome/restic

Michael Eischer

commit sha 6add1868672ac5b438d14035581428eb75675284

key: Check that a new key file actually works

view details

Michael Eischer

commit sha 454b6d608e0ad25aa59a1fe6bc3266eb2621b22f

key: Add test that failed key saves don't break the repository

view details

Michael Eischer

commit sha 6c01078f3d24e99e1ced6ff420a36b2d9b26be88

find: support resolving multiple pack ids to blobs Just passing the list of blobs to packsToBlobs would also work in most cases, however, it could cause unexpected results when multiple pack files have the same prefix. Forget found prefixes to prevent this.

view details

Michael Eischer

commit sha 40745b4f8262f6d51de48d04dee146c581977279

find: stop file listing after resolving all pack files

view details

Michael Eischer

commit sha 3caab3c7ac07da6ff6620aaac0b4ae36962809a2

find: Print not found pack files

view details

Michael Eischer

commit sha 95b44490a04d7628e76f5b2930ce2aa3067e81da

find: search blob ids for pack in index if pack is missing If a pack file is missing try to determine the contained pack ids based on the repository index. This helps with assessing the damage to a repository before running `rebuild-index`.

view details

Michael Eischer

commit sha a81f34ae47e0191f7025d2bc54b4c4818a6337d6

Add changelog

view details

Michael Eischer

commit sha 3442dc87fb31ec4af276e12710ea0a7e49097415

find: Address review comments

view details

Michael Eischer

commit sha 185a55026b6701e9f8363cbfe764bca503f4de95

rest: workaround for HTTP2 zero-length replies bug The golang http client does not return an error when a HTTP2 reply includes a non-zero content length but does not return any data at all. This scenario can occur e.g. when using rclone when a file stored in a backend seems to be accessible but then fails to download.

view details

Michael Eischer

commit sha 097ed659b21b740de1b71515bf6fc95d5bf4f86a

rest: test that zero-length replies over HTTP2 work correctly The first test function ensures that the workaround works as expected. And the second test function is intended to fail as soon as the issue has been fixed in golang to allow us to eventually remove the workaround.

view details

Michael Eischer

commit sha 7d28006e2e22fea6c11a95e1179b29cd3f51c6af

Add changelog

view details

Magnus Thor Torfason

commit sha 74ebc650ab9d76faaf2066db38c88fedc9f4a63a

forget: Add --keep-within-hourly (and friends) Allow keeping hourly/daily/weekly/monthly/yearly snapshots for a given time period. This adds the following flags/parameters to restic forget: --keep-within-hourly duration --keep-within-daily duration --keep-within-weekly duration --keep-within-monthly duration --keep-within-yearly duration Includes following changes: - Add tests for --keep-within-hourly (and friends) - Add documentation for --keep-within-hourly (and friends) - Add changelog for --keep-within-hourly (and friends)

view details

Magnus Thor Torfason

commit sha 2081bd12fbfec4574df75796c1bb2336d1b2ec05

forget: Ensure future snapshots do not affect --keep-within-* Ensure that only snapshots made in the past are taken into account when running restic forget with the within switches (--keep-within, --keep-within- hourly, and friends)

view details

Alexander Neumann

commit sha 92f293cd0bdea4451bd27273b573917482457240

Merge pull request #3427 from MichaelEischer/find-packs-from-index find: List missing pack files based on the index

view details

Alexander Neumann

commit sha 77551597b22d76024eeb32aa0d22560008b8f139

Merge pull request #3416 from torfason/keep-hourly-within Keep hourly within

view details

Alexander Neumann

commit sha d8ea10db8c020ad17a68dfe27f301f2b8b0f6073

rest: Rework handling HTTP2 zero-length replies bug Add comment that the check is based on the stdlib HTTP2 client. Refactor the checks into a function. Return an error if the value in the Content-Length header cannot be parsed.

view details

MichaelEischer

commit sha 5571c3f7fd08c51e5e8cc67aff8d0ebad1d9245c

Merge pull request #3453 from MichaelEischer/http2-zero-length-workaround rest: Workaround Http2 zero-length reply bug

view details

greatroar

commit sha fa3eed199843bbede4bedfe38e4908b8445bb60f

Use rclone.wrappedConn by pointer This shaves a kilobyte off the Linux binary by not generating a non-pointer interface implementation.

view details

David le Blanc

commit sha 326fefcd807182a7fe592e459a3f8ba53edcea4e

Allow --tag and --keep-tag to match untagged snapshots

view details

MichaelEischer

commit sha c98bbdcdbee4a5450c21e80b2c8f81c81d58deb8

Merge pull request #3457 from systemmonkey42/feature/untagged Feature to match untagged snapshots only when listing or forgetting

view details

push time in 25 days

pull request commentrestic/restic

Simplify cache logic

@MichaelEischer Thanks a lot for your review and big excuse for the very late reply. I was heavily busy with finding a new home for my family and finally relocating. And wow, that was really a very busy time... While not completely finished I'm starting to see light at the end of the tunnel now ;-)

I also rebased this PR to solve the merge conflicts. Hope it is now in a good shape to be merged.

aawsome

comment created time in 25 days

Pull request review commentrestic/restic

Simplify cache logic

 const ( // Handle is used to store and access data in a backend. type Handle struct { 	Type FileType+	BT   BlobType

is changed now.

aawsome

comment created time in 25 days

PullRequestReviewEvent

push eventaawsome/restic

Michael Eischer

commit sha 34b6130a0e0550b3824f14279dd4e91f3c69a26a

restic: parallelize lock file loading

view details

Michael Eischer

commit sha 5cd40f8b580002953b181f005c7eb1bf967b06e5

Add changelog

view details

Michael Eischer

commit sha cfea79d0c55b94fd184d3e8d77f9aeb04b1bcad8

prune: don't print stacktrace on console

view details

Michael Eischer

commit sha 96904f897281c074a441f381efcaeb636c122877

check: extract parallel index loading

view details

Michael Eischer

commit sha ccc84af73d98728fa6f767a3ab018781faab54cd

debug/list: parallelize index loading

view details

Michael Eischer

commit sha 24474a36f4a69e74a1e9c6fb0ac1d99a13917322

repository: deduplicate index loading implementation

view details

Michael Eischer

commit sha a12c5f1d3725a52afe003a7d22904008b6fb3cf7

repository: move otherwise unused LoadIndex to tests

view details

Michael Eischer

commit sha b9f5d3fe1361798d31c63c310598110187b67697

repository: Add test for ForAllIndexes

view details

Michael Eischer

commit sha c2ef049f1bda09de2fdc947819825aaaab99f466

ui/progress: don't print progress on non-interactive terminals This reverts to the old behavior of not printing progress updates on non-interactive terminals. It was accidentally changed in #3058.

view details

Michael Eischer

commit sha 13ce981794414ab537cd693be85b1d87ded9505e

ui: cleanup backup status shutdown

view details

Michael Eischer

commit sha 969141b5e964c77e9d83ed09e36c4481932024dd

Honor RESTIC_PROGRESS_FPS env variable on non-interactive terminals This makes it possible to use the environment variable to also get regular progress updates on non-interactive terminals.

view details

Michael Eischer

commit sha 85fe5feadbf7b4135bf5880af8e4148c932eb66d

Unify progress report frequency calculation

view details

Michael Eischer

commit sha 684600cf429654f3b060086e78345460b7e7611c

ui: update status for the backup command on non-interactive terminals Allow the backup command to print status on non-interactive terminals. The output is disabled by setting a MinUpdatePause == 0.

view details

Michael Eischer

commit sha 023eea64634b074016eec73005341b4bce95da13

ui: don't shorten non-interactive progress output

view details

Michael Eischer

commit sha 34afc93ddcf3339d508a5c9e318aa4310bf4034a

ui/progress: extract signal handling into own package

view details

Michael Eischer

commit sha 92da5168e150e34c62ed4aee64afbb1a46596fff

ui: force backup progress update on signal

view details

Michael Eischer

commit sha 05a987b07c48d0ed785354d135d63a9e69dfa457

Support values less than 1 for RESTIC_PROGRESS_FPS For example set the variable to 0.016666 to print the progress once per minute.

view details

Michael Eischer

commit sha cff4955a4861668e136f58ef1f562d03b4b8c837

ui: remove dead struct member

view details

Michael Eischer

commit sha 25f4acdaa85324b650441b5b75c45af9835818af

Add changelog entry

view details

Michael Eischer

commit sha 97388b3504d3e5224291e36bbb25c3d353bcfaf4

Properly check that --quiet and --verbose are not combined If --verbose is specified once, then globalOptions.Verbose == 1. Previously --quiet --verbose would silently ignore the --verbose flag.

view details

push time in 25 days

PR closed restic/restic

Change implementation of BlobSet

What does this PR change? What problem does it solve?

Changes the implementation of BlobSet from map[BlobHandle]struct{} to [NumBlobTypes]IDSet. This has the following advantages:

  • uses less memory for large number of blobs within a BlobSet
  • is thread-safe if blobs of different types are added or deleted concurrently (can e.g. be used in #3106)

Was the change discussed in an issue or in the forum before?

No.

Checklist

  • [x] I have read the Contribution Guidelines
  • [x] I have enabled maintainer edits for this PR
  • I have not added tests for all changes in this PR, but modified the current ones
  • I have not added documentation for the changes (in the manual) - not needed
  • There's no new file in changelog/unreleased/ that describes the changes for our users (template here) - user should hardly notice this change
  • [x] I have run gofmt on the code in all commits
  • [x] All commit messages are formatted in the same style as the other commits in the repo
  • [x] I'm done, this Pull Request is ready for review
+94 -61

4 comments

8 changed files

aawsome

pr closed time in 2 months

pull request commentrestic/restic

Change implementation of BlobSet

Thanks a lot for your tests, @MichaelEischer I agree and close this PR.

aawsome

comment created time in 2 months

issue commentrestic/restic

Avoid disk-full condition

This also means that, if it runs into an error while backing things up, it hasn't yet deleted anything and it can safely undo additions to free up space without entering an 'insane' state. It doesn't need to modify files and gets you to a >0 bytes available state, which would then (usually) allow you to use --max-repack-count as mentioned above.

This is not generally true. restic can potentially run in parallel by many systems. So while one backup fails due to a full disc a parallel backup could have already been finished and using already uploaded parts from the aborted backup.

prune already deletes pack files which are not indexed. If a backup run aborts because of a full disk, there will be likely some of these files and I think that a prune --max-repack-size=0 has a quite high probability to succeed.

jgfrm

comment created time in 2 months

pull request commentrestic/restic

Improve recover command

rebased to solve merge conflicts.

aawsome

comment created time in 2 months

push eventaawsome/restic

Michael Eischer

commit sha 34b6130a0e0550b3824f14279dd4e91f3c69a26a

restic: parallelize lock file loading

view details

Michael Eischer

commit sha 5cd40f8b580002953b181f005c7eb1bf967b06e5

Add changelog

view details

Michael Eischer

commit sha cfea79d0c55b94fd184d3e8d77f9aeb04b1bcad8

prune: don't print stacktrace on console

view details

Michael Eischer

commit sha 96904f897281c074a441f381efcaeb636c122877

check: extract parallel index loading

view details

Michael Eischer

commit sha ccc84af73d98728fa6f767a3ab018781faab54cd

debug/list: parallelize index loading

view details

Michael Eischer

commit sha 24474a36f4a69e74a1e9c6fb0ac1d99a13917322

repository: deduplicate index loading implementation

view details

Michael Eischer

commit sha a12c5f1d3725a52afe003a7d22904008b6fb3cf7

repository: move otherwise unused LoadIndex to tests

view details

Michael Eischer

commit sha b9f5d3fe1361798d31c63c310598110187b67697

repository: Add test for ForAllIndexes

view details

Michael Eischer

commit sha c2ef049f1bda09de2fdc947819825aaaab99f466

ui/progress: don't print progress on non-interactive terminals This reverts to the old behavior of not printing progress updates on non-interactive terminals. It was accidentally changed in #3058.

view details

Michael Eischer

commit sha 13ce981794414ab537cd693be85b1d87ded9505e

ui: cleanup backup status shutdown

view details

Michael Eischer

commit sha 969141b5e964c77e9d83ed09e36c4481932024dd

Honor RESTIC_PROGRESS_FPS env variable on non-interactive terminals This makes it possible to use the environment variable to also get regular progress updates on non-interactive terminals.

view details

Michael Eischer

commit sha 85fe5feadbf7b4135bf5880af8e4148c932eb66d

Unify progress report frequency calculation

view details

Michael Eischer

commit sha 684600cf429654f3b060086e78345460b7e7611c

ui: update status for the backup command on non-interactive terminals Allow the backup command to print status on non-interactive terminals. The output is disabled by setting a MinUpdatePause == 0.

view details

Michael Eischer

commit sha 023eea64634b074016eec73005341b4bce95da13

ui: don't shorten non-interactive progress output

view details

Michael Eischer

commit sha 34afc93ddcf3339d508a5c9e318aa4310bf4034a

ui/progress: extract signal handling into own package

view details

Michael Eischer

commit sha 92da5168e150e34c62ed4aee64afbb1a46596fff

ui: force backup progress update on signal

view details

Michael Eischer

commit sha 05a987b07c48d0ed785354d135d63a9e69dfa457

Support values less than 1 for RESTIC_PROGRESS_FPS For example set the variable to 0.016666 to print the progress once per minute.

view details

Michael Eischer

commit sha cff4955a4861668e136f58ef1f562d03b4b8c837

ui: remove dead struct member

view details

Michael Eischer

commit sha 25f4acdaa85324b650441b5b75c45af9835818af

Add changelog entry

view details

Michael Eischer

commit sha debc4a3a99417df9503ef89864fc868f5c7eee02

archiver: fix race condition during worker startup When the tomb is created with a canceled context, then the workers started via `t.Go` exist nearly immediately. Once for the first time all started goroutines have been stopped, it is not allowed to issue further calls to `t.Go`. This is a problem when the started goroutines exit immediately, as for example the first goroutine might already have stopped before starting the second one, which is not allowed as once the first goroutines has stopped no goroutines were running. To fix this race condition the startup and main task of the archiver now also run within a `t.Go` function. This also allows unifying the error handling as it is no longer necessary to distinguish between errors returned by the workers or the saveTree processing. The tomb now just returns the first error encountered, which should also be the most descriptive one.

view details

push time in 2 months

pull request commentrestic/restic

Improve recover command

What's the use case of tagging a snapshot created by recover? This command is something you'd run manually when needed, so why would you need to tag it? Even if you do, you could just use the existing tag command so there's little need for adding code to tag these manually produced snapshots IMO.

With --split you can get quite a lot of new snapshots. I thought it might be handy to let recover tag them all. And it is exactly 3 extra lines of code...

Also, I don't understand the point of having a boolean argument to --split. If the default is to not split, then just --split would be enough, no?

You are right. Of course --split also works.

aawsome

comment created time in 2 months

Pull request review commentrestic/restic

backup: add --dry-run/-n flag

 On **Windows**, a file is considered unchanged when its path and modification time match, and only ``--force`` has any effect. The other options are recognized but ignored. +Dry Runs+********++You can perform a backup in dry run mode to see what would happen without+modifying the repo.++-  ``--dry-run``/``-n`` do not write anything, just print what would be done++Combined with ``--verbose``, you can see a list of changes:

is changed.

aawsome

comment created time in 2 months

PullRequestReviewEvent

push eventaawsome/restic

Alexander Weiss

commit sha 8ddbc30948de999515b685de6ed5c3c6b1f50f72

Adapt changelog

view details

push time in 2 months

Pull request review commentrestic/restic

backup: add --dry-run/-n flag

+package dryrun++import (+	"bufio"+	"context"+	"io"++	"github.com/restic/restic/internal/debug"+	"github.com/restic/restic/internal/restic"+)++// Backend passes reads through to an underlying layer and accepts writes, but+// doesn't do anything. Also removes are ignored.+// So in fact, this backend silently ignores all operations that would modify+// the repo and does normal operations else.+// This is used for `backup --dry-run`.+type Backend struct {+	restic.Backend+}++// New returns a new backend that saves all data in a map in memory.+func New(be restic.Backend) *Backend {+	b := &Backend{Backend: be}+	debug.Log("created new dry backend")+	return b+}++// Save adds new Data to the backend.+func (be *Backend) Save(ctx context.Context, h restic.Handle, rd restic.RewindReader) error {+	if err := h.Valid(); err != nil {+		return err+	}++	// discard everything from rd, but count it+	maxInt := int(^uint(0) >> 1)

Actually I just realized that in order to get the length, we can simply use rd.Length(). Thanks for the hint.

I also checked out how this Save method is actually called and decided that the dry-run backend doesn't even need to read from the reader, so I removed this and now use rd.Length() to display the omitted size in the debug output. Note that this in fact means that the dry run backend does now no longer exactly behave the same way with respect to rd like the original backend would. (but also other backends like the CachedBackend or the RetryBackend don't). Also this means that backup with the --dry-run flag does no longer read previously written temporary files (or memory buffers) and should be a bit faster.

aawsome

comment created time in 2 months

PullRequestReviewEvent

Pull request review commentrestic/restic

backup: add --dry-run/-n flag

+package dryrun_test++import (+	"context"+	"fmt"+	"io"+	"io/ioutil"+	"sort"+	"strings"+	"testing"++	"github.com/restic/restic/internal/restic"++	"github.com/restic/restic/internal/backend/dryrun"+	"github.com/restic/restic/internal/backend/mem"+)++// make sure that Backend implements backend.Backend+var _ restic.Backend = &dryrun.Backend{}++func newBackends() (*dryrun.Backend, restic.Backend) {+	m := mem.New()+	return dryrun.New(m), m+}++func TestDry(t *testing.T) {+	ctx := context.TODO()++	d, m := newBackends()+	// Since the dry backend is a mostly write-only overlay, the standard backend test suite+	// won't pass. Instead, perform a series of operations over the backend, testing the state+	// at each step.+	steps := []struct {+		be      restic.Backend+		op      string+		fname   string+		content string+		wantErr string+	}{+		{d, "loc", "", "DRY:RAM", ""},+		{d, "delete", "", "", ""},+		{d, "stat", "a", "", "not found"},+		{d, "list", "", "", ""},+		{d, "save", "", "", "invalid"},+		{d, "test", "a", "", ""},+		{m, "save", "a", "baz", ""},  // save a directly to the mem backend+		{d, "save", "b", "foob", ""}, // b is not saved+		{d, "save", "b", "xxx", ""},  // no error as b is not saved+		{d, "test", "a", "1", ""},+		{d, "test", "b", "", ""},+		{d, "stat", "", "", "invalid"},+		{d, "stat", "a", "a 3", ""},+		{d, "load", "a", "baz", ""},+		{d, "load", "b", "", "not found"},+		{d, "list", "", "a", ""},+		{d, "remove", "c", "", ""},+		{d, "stat", "b", "", "not found"},+		{d, "list", "", "a", ""},+		{d, "remove", "a", "", ""}, // a is in fact not removed+		{d, "list", "", "a", ""},+		{m, "remove", "a", "", ""}, // remove a from the mem backend+		{d, "list", "", "", ""},+		{d, "close", "", "", ""},+		{d, "close", "", "", ""},+	}++	for i, step := range steps {+		var err error+		var boolRes bool++		handle := restic.Handle{Type: restic.PackFile, Name: step.fname}+		switch step.op {+		case "save":+			err = step.be.Save(ctx, handle, restic.NewByteReader([]byte(step.content)))+		case "test":+			boolRes, err = step.be.Test(ctx, handle)+			if boolRes != (step.content != "") {+				t.Errorf("%d. Test(%q) = %v, want %v", i, step.fname, boolRes, step.content != "")+			}+		case "list":+			fileList := []string{}+			err = step.be.List(ctx, restic.PackFile, func(fi restic.FileInfo) error {+				for _, n := range fileList {

It isn't necessary. I removed this filtering out.

aawsome

comment created time in 2 months

PullRequestReviewEvent

Pull request review commentrestic/restic

backup: add --dry-run/-n flag

+package dryrun++import (+	"bufio"+	"context"+	"io"++	"github.com/restic/restic/internal/debug"+	"github.com/restic/restic/internal/restic"+)++// Backend passes reads through to an underlying layer and accepts writes, but+// doesn't do anything. Also removes are ignored.+// So in fact, this backend silently ignores all operations that would modify+// the repo and does normal operations else.+// This is used for `backup --dry-run`.+type Backend struct {+	restic.Backend

is changed.

aawsome

comment created time in 2 months

PullRequestReviewEvent

push eventaawsome/restic

Alexander Neumann

commit sha 12f0ccc23713396d3d5f301a9771abf2f3af939d

helpers: Also push versioned image to Docker

view details

Michael Eischer

commit sha 65bd2a9a498581c42e5ea2d4944a8b732619f244

backup: Correctly handle --quiet flag The quiet flag changes the backup output to assume a non-interactive terminal. However, the output progress interval was not set to 0 by default.

view details

rawtaz

commit sha 8eb6a5805bdf290bee7fb4af1ace60a52a66197b

Merge pull request #3286 from MichaelEischer/fix-quiet-backup backup: Correctly handle --quiet flag

view details

Michael Eischer

commit sha a293fd9aef6cf86a9598878d7a99afe74e807f5f

local: Ignore files in intermediate folders For example the data folder of a repository might contain hidden files which caused list operations to fail.

view details

MichaelEischer

commit sha 4baebdc6f59e649b3c0bcd800d37129b868b3c95

Merge pull request #3308 from MichaelEischer/fix-not-a-directory local: Ignore files in intermediate folders

view details

Michael Eischer

commit sha 9e852af5be802c7a83dfbbd5b980b9aa71cac6d6

check: Fix crash of --read-data-subset=x% on empty repository Rounding up to at least one pack file should only be done if at least a pack file exists.

view details

MichaelEischer

commit sha 6712c6de731eaeab84da6bd65a29f8eb3ad4a4e2

Merge pull request #3309 from MichaelEischer/fix-random-check-crash check: Fix crash of --read-data-subset=x% on empty repository

view details

Denny Page

commit sha 0f41e99ea79f498b51cc5ade620e825fd43acbbe

Treat an empty password as a fatal error for repository init.

view details

Michael Eischer

commit sha 13730e3844e4f9d4976ed7a9bccb02e2adb0b8b1

Add link to pr to changelog

view details

MichaelEischer

commit sha 814a399e4c08116e153b9a821ad9956143023570

Merge pull request #3283 from dennypage/master Treat an empty password as a fatal error for repository init.

view details

Michael Eischer

commit sha f70aca6f6f7a0eaeafb16f5981805515d44f7e19

restorer: Skip preallocate test if not supported by the filesystem

view details

Michael Eischer

commit sha f0e9068ef20e47711260712c230524ce1a288ef2

go mod tidy for go 1.16

view details

Michael Eischer

commit sha ee89e33f126a07cbe7864e92816cb84603faeec5

CI: Pin go version used for golint to 1.15.x This prevents unexpected lint failures when a new go version is released.

view details

Michael Eischer

commit sha 64a9272c9a411655132aa38d4c7e97f72a693df2

go mod tidy for go 1.16

view details

Michael Eischer

commit sha 781378a65e58bc8bbe4af27829e1aa754c213ef1

Bump go version to 1.16

view details

MichaelEischer

commit sha 64fe733fa0cc6e02d79164b64e8cf59bfd7c18ae

Merge pull request #3320 from MichaelEischer/fix-ci Update to Go 1.16 and pin go version used for golangcil-lint

view details

rawtaz

commit sha f000f41c91a8acc19d1619909a78684daadf3cbf

doc: Clarify setcap applying only to current binary

view details

rawtaz

commit sha d686fa25de2dde6ca224cf88a5425ec579d755a3

Merge pull request #3323 from restic/doc-setcap doc: Clarify setcap applying only to current binary

view details

Michael Eischer

commit sha 2a9f0f19b61d9a3885658d3cd0adb2b87f365748

s3: Fix sanity check The sanity check shouldn't replace the error message if there is already one.

view details

Juergen Hoetzel

commit sha 18fccb59955230363af37415c105030580256181

backup: In case of error also Wait() for terminal goroutine This prevents a race condition where the final summary message can get lost.

view details

push time in 2 months

PullRequestReviewEvent

Pull request review commentrestic/restic

backup: add --dry-run/-n flag

 import ( 	"sync"  	"github.com/restic/chunker"+	"github.com/restic/restic/internal/backend/dryrun"

IMO the backendTestHook would not work as intended. It is applied before the the backend is wrapped by a CachedBackend. So, dry-run writes to the repository would not write to the repo, but write to the cache which is not intended.

The problem with the cache is that it depends on the repo ID which is only available after actually reading the config file from the backend. This is why the cache wrapper is added in repository.go. Now as the dryrun wrapper should be applied to the already cache-enabled backend, I added this also here. The alternative would be to allow direct access to the backend of the repository via some GetBackend and SetBackend methods and then call

repo.SetBackend(dryrun.New(repo.GetBackend()))

in cmd_backup.go. This way we could also separate (most of) the cache logic from the backend.

aawsome

comment created time in 2 months

issue commentrestic/restic

Prune - option to repack based on per-pack unused

Can you give an example where the current prune bevavior is not optiomal in you opinion?

During prune the packs are sorted by the per-pack unused ratio. Packs that are highly used (but not entirely used) are sorted to the end of the list of potential packs-to-repack. So those packs will be likely not repacked - except you chose max-unused=0 So I believe that the current prune implementation already solves the problem you are trying to solve.

superdanm2

comment created time in 3 months