summaryrefslogtreecommitdiff
path: root/Command
Commit message (Collapse)AuthorAge
* sync: support gcrypt4.20130909Gravatar Joey Hess2013-09-09
|
* Allow building without quvi support.Gravatar Joey Hess2013-09-09
|
* partially complete gcrypt remote (local send done; rest not)Gravatar Joey Hess2013-09-07
| | | | | | | | | | | | | | | | | | | | | | | | This is a git-remote-gcrypt encrypted special remote. Only sending files in to the remote works, and only for local repositories. Most of the work so far has involved making initremote work. A particular problem is that remote setup in this case needs to generate its own uuid, derivied from the gcrypt-id. That required some larger changes in the code to support. For ssh remotes, this will probably just reuse Remote.Rsync's code, so should be easy enough. And for downloading from a web remote, I will need to factor out the part of Remote.Git that does that. One particular thing that will need work is supporting hot-swapping a local gcrypt remote. I think it needs to store the gcrypt-id in the git config of the local remote, so that it can check it every time, and compare with the cached annex-uuid for the remote. If there is a mismatch, it can change both the cached annex-uuid and the gcrypt-id. That should work, and I laid some groundwork for it by already reading the remote's config when it's local. (Also needed for other reasons.) This commit was sponsored by Daniel Callahan.
* avoid double commit during transitionGravatar Joey Hess2013-09-03
| | | | | | The second commit had some bad refs which resulted in the race detection code running. But that commit was unnecessary anyway, it only was there to merge in the other refs.
* fix error propigating when unable to download feed itemGravatar Joey Hess2013-09-03
|
* Merge branch 'forget'Gravatar Joey Hess2013-09-03
|\ | | | | | | | | Conflicts: debian/changelog
* | importfeed: Also ignore transient problems with downloading content from feeds.Gravatar Joey Hess2013-09-03
| |
| * forget --drop-dead: Completely removes mentions of repositories that have ↵Gravatar Joey Hess2013-08-31
| | | | | | | | | | | | | | | | | | | | | | | | | | been marked as dead from the git-annex branch. Wrote nice pure transition calculator, and ugly code to stage its results into the git-annex branch. Also had to split up several Log modules that Annex.Branch needed to use, but that themselves used Annex.Branch. The transition calculator is limited to looking at and changing one file at a time. While this made the implementation relatively easy, it precludes transitions that do stuff like deleting old url log files for keys that are being removed because they are no longer present anywhere.
| * refactor git-annex branch log filename code into central locationGravatar Joey Hess2013-08-29
| | | | | | | | | | | | | | Having one module that knows about all the filenames used on the branch allows working back from an arbitrary filename to enough information about it to implement dropping dead remotes and doing other log file compacting as part of a forget transition.
| * sync, assistant: Force push of the git-annex branch.Gravatar Joey Hess2013-08-29
| | | | | | | | | | Necessary to ensure it gets pushed to remotes after being rewritten by forget. See inline rationalles for why I think this is safe!
| * add forget commandGravatar Joey Hess2013-08-28
|/ | | | | | | | | Works, more or less. --dead is not implemented, and so far a new branch is made, but keys no longer present anywhere are not scrubbed. git annex sync fails to push the synced/git-annex branch after a forget, because it's not a fast-forward of the existing synced branch. Could be fixed by making git-annex sync use assistant-style sync branches.
* Unused: bugfixGravatar guilhem2013-08-26
| | | | Detect staged files that are not in the working tree.
* fix reversion in unusedGravatar Joey Hess2013-08-26
| | | | | | The reversion was that, if a file was git rm'd, but still in branches, it would not be seen as used. Looking at both the added and the removed (or changed) files from the diff-index is a cheap way to fix that.
* whitespaceGravatar Joey Hess2013-08-25
|
* unnecessary do blockGravatar Joey Hess2013-08-25
|
* Speed up the 'unused' command.Gravatar guilhem2013-08-25
| | | | | | | | | | | Instead of populating the second-level Bloom filter with every key referenced in every Git reference, consider only those which differ from what's referenced in the index. Incidentaly, unlike with its old behavior, staged modifications/deletion/... will now be detected by 'unused'. Credits to joeyh for the algorithm. :-)
* better casesGravatar Joey Hess2013-08-22
|
* Youtube support! (And 53 other video hosts)Gravatar Joey Hess2013-08-22
| | | | | | | | | | When quvi is installed, git-annex addurl automatically uses it to detect when an page is a video, and downloads the video file. web special remote: Also support using quvi, for getting files, or checking if files exist in the web. This commit was sponsored by Mark Hepburn. Thanks!
* unused: Pay attention to symlinks that are not yet staged in the index.Gravatar Joey Hess2013-08-22
|
* mirror: New command, makes two repositories contain the same set of files.Gravatar Joey Hess2013-08-20
| | | | | | | | | | | | | | This is a simple approach for setting up a mirroring repository. It will work with any type of remotes. Mirror --from is more expensive than mirror --to in general. OTOH, mirror --from will get the file from any remote that has it, not only the named mirror remote. And if the named mirror remote is not the fastest available remote with a file, that can speed things up. It would be possible to make the assistant or watch command do a more dynamic mirroring, that didn't need to scan every time.
* implement import --deduplicate and import --clean-duplicatesGravatar Joey Hess2013-08-20
| | | | | | | | Note that --deduplicate currently checksums each file twice, once to see if it's a known key, and once when importing it. Perhaps this could be revisited and the extra checksum gotten rid of, at the cost of not locking down the file when adding it.
* Merge branch 'duplicate'Gravatar Joey Hess2013-08-20
|\ | | | | | | | | Conflicts: debian/changelog
* | sync, merge: Bug fix: Don't try to merge into master when in a bare repo.Gravatar Joey Hess2013-08-17
| |
| * implement import --duplicateGravatar Joey Hess2013-08-11
|/ | | | | The other two options are harder, due to needing to get the key for a file before adding it.
* importfeed: Fix handling of dots in extensions.Gravatar Joey Hess2013-08-03
|
* importfeed: Ignores transient problems with feeds. Only exits nonzero when a ↵Gravatar Joey Hess2013-08-03
| | | | feed has repeatedly had a problems for at least 1 day.
* improve error messageGravatar Joey Hess2013-08-02
|
* get rid of __WINDOWS__, use mingw32_HOST_OSGravatar Joey Hess2013-08-02
| | | | | The latter is harder for me to remember, but avoids build failures in code used by the configure program.
* improve importfeed --force; try to match existing files to avoid unncessary ↵Gravatar Joey Hess2013-08-01
| | | | duplication
* importfeed --force: re-download urls that have been seen beforeGravatar Joey Hess2013-07-31
|
* find: Avoid polluting stdout with progress messages. Closes: #718186Gravatar Joey Hess2013-07-30
|
* Fix a few bugs involving filenames that are at or near the filesystem's ↵Gravatar Joey Hess2013-07-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | maximum filename length limit. Started with a problem when running addurl on a really long url, because the whole url is munged into the filename. Ended up doing a fairly extensive review for places where filenames could get too large, although it's hard to say I'm not missed any.. Backend.Url had a 128 character limit, which is fine when the limit is 255, but not if it's a lot shorter on some systems. So check the pathconf() limit. Note that this could result in fromUrl creating different keys for the same url, if run on systems with different limits. I don't see this is likely to cause any problems. That can already happen when using addurl --fast, or if the content of an url changes. Both Command.AddUrl and Backend.Url assumed that urls don't contain a lot of multi-byte unicode, and would fail to truncate an url that did properly. A few places use a filename as the template to make a temp file. While that's nice in that the temp file name can be easily related back to the original filename, it could lead to `git annex add` failing to add a filename that was at or close to the maximum length. Note that in Command.Add.lockdown, the template is still derived from the filename, just with enough space left to turn it into a temp file. This is an important optimisation, because the assistant may lock down a bunch of files all at once, and using the same template for all of them would cause openTempFile to iterate through the same set of names, looking for an unused temp file. I'm not very happy with the relatedTemplate hack, but it avoids that slowdown. Backend.WORM does not limit the filename stored in the key. I have not tried to change that; so git annex add will fail on really long filenames when using the WORM backend. It seems better to preserve the invariant that a WORM key always contains the complete filename, since the filename is the only unique material in the key, other than mtime and size. Since nobody has complained about add failing (I think I saw it once?) on WORM, probably it's ok, or nobody but me uses it. There may be compatability problems if using git annex addurl --fast or the WORM backend on a system with the 255 limit and then trying to use that repo in a system with a smaller limit. I have not tried to deal with those. This commit was sponsored by Alexander Brem. Thanks!
* improve commentGravatar Joey Hess2013-07-28
|
* fix bug in makeUniqueGravatar Joey Hess2013-07-28
| | | | Returned the possibly non-unique file
* better extension handlingGravatar Joey Hess2013-07-28
| | | | | | | When there's no extension, don't use "none", but "". When there is an extension, it starts with a dot, so don't put a redundant dot in the default format.
* if a feed cannot be downloaded or has no enclosures, failGravatar Joey Hess2013-07-28
|
* don't crash on encoding issues in feedsGravatar Joey Hess2013-07-28
| | | | | | filesystem encoding to the rescue once more! IIRC this was the main bug in hpodder.
* show a side action when finding known urlsGravatar Joey Hess2013-07-28
|
* importfeed: git-annex becomes a podcatcher in 150 LOCGravatar Joey Hess2013-07-28
|
* unused: No longer shows as unused tmp files that are actively being transferred.Gravatar Joey Hess2013-07-25
|
* dropunused behavior change: Now refuses to drop the last copy of a file, ↵Gravatar Joey Hess2013-07-25
| | | | | | | | | | unless you use the --force. This was the last place in git-annex that could remove data referred to by the git history, without being forced. Like drop, dropunused checks remotes, and honors the global annex.numcopies setting. (However, .gitattributes settings cannot apply to unused files.)
* Support import in direct mode.Gravatar Joey Hess2013-07-22
|
* Support unannex and uninit in direct mode.Gravatar Joey Hess2013-07-22
| | | | | | | | | | | | | | | | | | | In direct mode, it's best to whenever possible not move direct mode files out of the way, and so I made unannex avoid touching the direct mode file at all. That actually turns out to be easy, because in direct mode, unlike indirect mode, the pre-commit hook won't get confused if the unannexed file later gets added back by git add. So there's no need to commit the unannex right away; it can be staged for the user to commit later. This also means that unannex in direct mode is a lot faster than in indirect mode! Another subtle bit is the bookkeeping that is done when unannexing a direct mode file. The inode cache needs to be removed so that when uninit runs getKeysPresent, it doesn't see the cache and think the key is still present and crash when it's not. This commit is sponsored by Douglas Butts. Thanks!
* fix uninit to delete content from annex when it ended up hard linked back to ↵Gravatar Joey Hess2013-07-18
| | | | the work tree
* uninit: Preserve .git/annex/objects at the end, if it still has content, so ↵Gravatar Joey Hess2013-07-16
| | | | that old versions of files and deleted files are not deleted. Print a message with some suggested actions.
* fix: Preserve the original mtime of fixed symlinks.Gravatar Joey Hess2013-07-11
|
* dropunused, addunused: Complain when asked to operate on a number that does ↵Gravatar Joey Hess2013-07-08
| | | | not correspond to any unused key.
* addurl --pathdepth: Fix failure when the pathdepth specified is deeper than ↵Gravatar Joey Hess2013-07-05
| | | | the urls's path.
* moved AssociatedFile definitionGravatar Joey Hess2013-07-04
|
* merge: Now also merges synced/master or similar branches, which makes it ↵Gravatar Joey Hess2013-07-03
| | | | useful to put in a post-receive hook to make a repository automatically update its working copy when git annex sync or the assistant sync with it.