summaryrefslogtreecommitdiff
path: root/debian
Commit message (Collapse)AuthorAge
* Fix the hook special remote, which bitrotted a while ago.Gravatar Joey Hess2011-12-20
|
* Properly handle multiline git config values.Gravatar Joey Hess2011-12-15
| | | | | | | | | | A crash on parsing was fixed a while ago. This adds support for fully correctly parsing multiline git config values, using git config --null. Since git-annex-shell configlist uses normal git config output, I left in support for that too; the two forms of config output can be easily identified by the parser. Since configlist only prints the annex.uuid config, there's no risk of multiline values there, so no need to change it.
* reinject: Add a sanity check for using an annexed file as the source file.Gravatar Joey Hess2011-12-12
|
* always find optimal mergeGravatar Joey Hess2011-12-12
| | | | | | | | | | Testing b9ac5854549636493449fea6830364a01159fbf6, it didn't find the optimal union merge, the second sha was the one to use, at least in the case I tried. Let's just try all shas to see if any can be reused. I stopped using the expensive nub, so despite the use of sets to sort/uniq file contents, this is probably as fast or faster than it was before.
* releasing version 3.201112113.20111211Gravatar Joey Hess2011-12-11
|
* slow, stupid, and safe index updatingGravatar Joey Hess2011-12-11
| | | | | | | | | | | | | | | | | | Always merge the git-annex branch into .git/annex/index before making a commit from the index. This ensures that, when the branch has been changed in any way (by a push being received, or changes pulled directly into it, or even by the user checking it out, and committing a change), the index reflects those changes. This is much too slow; it needs to be optimised to only update the index when the branch has really changed, not every time. Also, there is an unhandled race, when a change is made to the branch right after the index gets updated. I left it in for now because it's unlikely and I didn't want to complicate things with additional locking yet.
* Fix bug in last version in getting contents from bare repositories.Gravatar Joey Hess2011-12-10
|
* version dependency on old monad-controlGravatar Joey Hess2011-12-10
| | | | This should let cabal build it with the right version.
* sync: New command that synchronises the local repository and default remote, ↵Gravatar Joey Hess2011-12-09
| | | | by running git commit, pull, and push for you.
* unannex improvementsGravatar Joey Hess2011-12-09
| | | | | | | | | Added files don't have to be committed before they can be unannexed. unannex no longer commits existing staged changes unannex of the last file in a directory now works, before it failed because git rm deleted the directory out from under it,
* Fix caching of decrypted ciphers, which failed when drop had to check ↵Gravatar Joey Hess2011-12-08
| | | | multiple different encrypted special remotes.
* add: If interrupted, add can leave files converted to symlinks but not yet ↵Gravatar Joey Hess2011-12-07
| | | | added to git. Running the add again will now clean up this situtation.
* Prevent key names from containing newlines.Gravatar Joey Hess2011-12-06
| | | | | | | | | There are several places where it's assumed a key can be written on one line. One is in the format of the .git/annex/unused files. The difficult one is that filenames derived from keys are fed into git cat-file --batch, which has a line based input. (And no -z option.) So, for now it's best to block such keys being created.
* map: Fix a failure to detect a loop when both repositories are local and ↵Gravatar Joey Hess2011-12-04
| | | | refer to each other with relative paths.
* releasing version 3.201112033.20111203Gravatar Joey Hess2011-12-03
|
* dead: A command which says that a repository is gone for good and you don't ↵Gravatar Joey Hess2011-12-02
| | | | want git-annex to mention it again.
* convert rsync special backend to using both hash directory typesGravatar Joey Hess2011-12-02
|
* wordingGravatar Joey Hess2011-12-02
|
* clarifyGravatar Joey Hess2011-11-28
|
* store content in hashDirLower directories in bare repositoriesGravatar Joey Hess2011-11-28
| | | | | | | When storing content in bare repositories, use the hashDirLower directories. Bare repositories can be on USB drives, which might use the FAT filesystem, and fall afoul of recent bugs in linux's handling of mixed case on FAT. Using hashDirLower avoids that.
* --inbackend can be used to make git-annex only operate on files whose ↵Gravatar Joey Hess2011-11-28
| | | | content is stored using a specified key-value backend.
* support .git/annex on a different disk than the rest of the repoGravatar Joey Hess2011-11-28
| | | | | | | | | | | | | | | | | | The only fully supported thing is to have the main repository on one disk, and .git/annex on another. Only commands that move data in/out of the annex will need to copy it across devices. There is only partial support for putting arbitrary subdirectories of .git/annex on different devices. For one thing, but this can require more copies to be done. For example, when .git/annex/tmp is on one device, and .git/annex/journal on another, every journal write involves a call to mv(1). Also, there are a few places that make hard links between various subdirectories of .git/annex with createLink, that are not handled. In the common case without cross-device, the new moveFile is actually faster than renameFile, avoiding an unncessary stat to check that a file (not a directory) is being moved. Of course if a cross-device move is needed, it is as slow as mv(1) of the data.
* Bugfix: dropunused did not drop keys with two spaces in their name.Gravatar Joey Hess2011-11-27
|
* changelogGravatar Joey Hess2011-11-26
|
* Flush json output, avoiding a buffering problem that could result in doubled ↵Gravatar Joey Hess2011-11-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | output. The bug was that with --json, output lines were sometimes doubled. For example, git annex init --json would output two lines, despite only running one thing. Adding to the weirdness, this only occurred when the output was redirected to a pipe or a file. Strace showed two processes outputting the same buffered output. The second process was this writer process (only needed to work around bug #624389): _ <- forkProcess $ do hPutStr toh $ unlines paths hClose toh exitSuccess The doubled output occurs when this process exits, and ghc flushes the inherited stdout buffer. Why only when piping? I don't know, but ghc may be behaving differently when stdout is not a terminal. While this is quite possibly a ghc bug, there is a nice fix in git-annex. Explicitly flushing after each chunk of json is output works around the problem, and as a side effect, json is streamed rather than being output all at the end when performing an expensive operaition. However, note that this means all uses of putStr in git-annex must be explicitly flushed. The others were, already.
* Put a workaround in the directory special remote for strange behavior with ↵Gravatar Joey Hess2011-11-22
| | | | VFAT filesystems on Linux (mounted with shortname=mixed)
* releasing version 3.201111223.20111122Gravatar Joey Hess2011-11-22
|
* find: Support --print0Gravatar Joey Hess2011-11-22
| | | | | | | | | | | It would be nice if command-specific options were supported. The first difficulty is that which command is being called is not known until after getopt; but that could be worked around by finding the first non-dashed parameter. Storing the settings without putting them in the annex monad is the next difficulty; it could perhaps be handled by making the seek stage pass applicable settings into the start stage (and from there on to perform as needed). But that still leaves a problem, what data type to use to represent the options between getopt and seek?
* status --json now shows most thingsGravatar Joey Hess2011-11-20
| | | | | | Left out the backend usage graph for now, and bad/temp directory sizes are only displayed when present. Also, disk usage is returned as a string with units, which I can see changing later.
* status: Include all special remotes in the list of repositories.Gravatar Joey Hess2011-11-18
| | | | | Special remotes do not always have a description listed in uuid.log, and such ones were not listed before.
* Avoid excessive escaping for rsync special remotes that are not accessed ↵Gravatar Joey Hess2011-11-18
| | | | | | | | | over ssh. This is actually tricky, 45bbf210a1210172c7c7b87879ed74f7c8ccbdba added the escaping because it's needed for rsync that does go over ssh. So I had to detect whether the remote's rsync url will use ssh or not, and vary the escaping.
* migrate: Don't fall over a stale temp file.Gravatar Joey Hess2011-11-17
|
* When not run in a git repository, git-annex can still display a usage ↵Gravatar Joey Hess2011-11-16
| | | | | | | message, and "git annex version" even works. Things that sound simple, but are made hard by the Annex monad being built with the assumption that there will always be a git repo.
* cleanupGravatar Joey Hess2011-11-16
|
* merge: Now runs in constant space.Gravatar Joey Hess2011-11-15
| | | | | | | | | | | | | | | Before, a merge was first calculated, by running various actions that called git and built up a list of lines, which were at the end sent to git update-index. This necessarily used space proportional to the size of the diff between the trees being merged. Now, lines are streamed into git update-index from each of the actions in turn. Runtime size of git-annex merge when merging 50000 location log files drops from around 100 mb to a constant 4 mb. Presumably it runs quite a lot faster, too.
* Fix support for insteadOf url remapping. Closes: #644278Gravatar Joey Hess2011-11-15
|
* status --json --fast for escGravatar Joey Hess2011-11-14
| | | | | | * status: Fix --json mode (only the repository lists are currently displayed) * status: --fast is back
* status: Now displays trusted, untrusted, and semitrusted repositories ↵Gravatar Joey Hess2011-11-14
| | | | separately.
* Optimised union merging; now only runs git cat-file once.Gravatar Joey Hess2011-11-12
|
* init: When run in an already initalized repository, and without a ↵Gravatar Joey Hess2011-11-12
| | | | description specified, don't delete the old description.
* avoid unnecessary auto-merge when only changing a file in the branch.Gravatar Joey Hess2011-11-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | Avoids doing auto-merging in commands that don't need fully current information from the git-annex branch. In particular, git annex add no longer needs to auto-merge. Affected commands: Anything that doesn't look up data from the branch, but does write a change to it. It might seem counterintuitive that we can change a value without first making sure we have the current value. This optimisation works because these two sequences are equivilant: 1. pull from remote 2. union merge 3. read file from branch 4. modify file and write to branch vs. 1. read file from branch 2. modify file and write to branch 3. pull from remote 4. union merge After either sequence, the git-annex branch contains the same logical content for the modified file. (Possibly with lines in a different order or additional old lines of course).
* merge: Improve commit messages to mention what was merged.Gravatar Joey Hess2011-11-12
|
* map: Support remotes with /~/ and /~user/Gravatar Joey Hess2011-11-11
| | | | | | | | | | More accurately, it was supported already when map uses git-annex-shell, but not when it does not. Note that the user name cannot be shell escaped using git-annex's current approach for shell escaping. I tried and some shells like dash cannot cd ~'joey'. Rest of directory is still shell escaped, not for security but in case a directory has a space or other weird character.
* Automatically fix up badly formatted uuid.log entries produced by ↵Gravatar Joey Hess2011-11-11
| | | | 3.20111105, whenever the uuid.log is changed (ie, by init or describe).
* Optimized copy --from and get --from to avoid checking the location log for ↵Gravatar Joey Hess2011-11-10
| | | | | | | files that are already present. This can be a significant speedup when running in large trees that are only missing a few files; it makes copy --from just as fast as get.
* content lockingGravatar Joey Hess2011-11-09
| | | | | I've tested that this solves the cyclic drop problem. Have not looked at cyclic move, etc.
* Handle a case where an annexed file is moved into a gitignored directory, by ↵Gravatar Joey Hess2011-11-07
| | | | having fix --force add its change.
* releasing version 3.201111073.20111107Gravatar Joey Hess2011-11-07
|
* Bugfix: In the past two releases, git-annex init has written the uuid.log in ↵Gravatar Joey Hess2011-11-07
| | | | | | | | | | | | | the wrong format, with the UUID and description flipped. This is my own damn fault for not making UUID a real type, and then relying on the type checker to ensure my refactoring was correct -- which it wasn't! I should probably add code to clean up bogus entries in the uuid.log, but right now I want to get the fix out there to prevent people experiencing this bug. I should also make UUID a real data type.
* Don't try to read config from repos with annex-ignore set.Gravatar Joey Hess2011-11-07
|