packages feed

git-annex 3.20120807 → 3.20120825

raw patch · 58 files changed

+1241/−282 lines, 58 filesbinary-added

Files

.gitignore view
@@ -1,6 +1,7 @@ tmp test configure+build-stamp Build/SysConfig.hs git-annex git-annex.1
Backend/SHA.hs view
@@ -125,5 +125,5 @@ 		_ -> return True 	where 		check s-			| s == dropExtension (keyName key) = True+			| s == dropExtensions (keyName key) = True 			| otherwise = False
CHANGELOG view
@@ -1,3 +1,12 @@+git-annex (3.20120825) unstable; urgency=low++  * S3: Add fileprefix setting.+  * Pass --use-agent to gpg when in no tty mode. Thanks, Eskild Hustvedt.+  * Bugfix: Fix fsck in SHA*E backends, when the key contains composite+    extensions, as added in 3.20120721.++ -- Joey Hess <joeyh@debian.org>  Sat, 25 Aug 2012 10:00:10 -0400+ git-annex (3.20120807) unstable; urgency=low    * initremote: Avoid recording remote's description before checking
@@ -8,7 +8,7 @@  this package's source, or in /usr/share/common-licenses/GPL-3 on  Debian systems. -Files: doc/logo.png doc/logo_small.png doc/favicon.png+Files: doc/logo* doc/favicon.png Copyright: 2007 Henrik Nyh <http://henrik.nyh.se/>            2010 Joey Hess <joey@kitenet.net> License: other
Makefile view
@@ -38,7 +38,8 @@ all=fast endif -all: $(all)+build: $(all)+	touch build-stamp  sources: $(sources) @@ -74,7 +75,7 @@ 		rsync -a --delete html/ $(DESTDIR)$(PREFIX)/share/doc/git-annex/html/; \ 	fi -install: all install-docs+install: build-stamp install-docs 	install -d $(DESTDIR)$(PREFIX)/bin 	install $(bins) $(DESTDIR)$(PREFIX)/bin 	ln -sf git-annex $(DESTDIR)$(PREFIX)/bin/git-annex-shell@@ -115,7 +116,7 @@  clean: 	rm -rf tmp $(bins) $(mans) test configure  *.tix .hpc $(sources) \-		doc/.ikiwiki html dist $(clibs)+		doc/.ikiwiki html dist $(clibs) build-stamp  sdist: clean $(mans) 	./make-sdist.sh
Remote/S3.hs view
@@ -212,9 +212,11 @@ bucketFile :: Remote -> Key -> FilePath bucketFile r = munge . show 	where-		munge s = case M.lookup "mungekeys" $ fromJust $ config r of-			Just "ia" -> iaMunge s-			_ -> s+		munge s = case M.lookup "mungekeys" c of+			Just "ia" -> iaMunge $ prefix ++ s+			_ -> prefix ++ s+		prefix = M.findWithDefault "" "fileprefix" c+		c = fromJust $ config r  bucketKey :: Remote -> String -> Key -> S3Object bucketKey r bucket k = S3Object bucket (bucketFile r k) "" [] L.empty
Utility/Gpg.hs view
@@ -29,7 +29,7 @@ 	b <- getEnv "GPG_BATCH" 	let batch = if isNothing e && isNothing b 		then []-		else ["--batch", "--no-tty"]+		else ["--batch", "--no-tty", "--use-agent"] 	return $ batch ++ defaults ++ toCommand params 	where 		-- be quiet, even about checking the trustdb
Utility/Misc.o view

binary file changed (5988 → 6176 bytes)

+ Utility/Process.o view

binary file changed (absent → 26100 bytes)

Utility/SafeCommand.o view

binary file changed (32116 → 25780 bytes)

Utility/libmounts.o view

binary file changed (1284 → 1284 bytes)

debian/changelog view
@@ -1,3 +1,12 @@+git-annex (3.20120825) unstable; urgency=low++  * S3: Add fileprefix setting.+  * Pass --use-agent to gpg when in no tty mode. Thanks, Eskild Hustvedt.+  * Bugfix: Fix fsck in SHA*E backends, when the key contains composite+    extensions, as added in 3.20120721.++ -- Joey Hess <joeyh@debian.org>  Sat, 25 Aug 2012 10:00:10 -0400+ git-annex (3.20120807) unstable; urgency=low    * initremote: Avoid recording remote's description before checking
debian/copyright view
@@ -8,7 +8,7 @@  this package's source, or in /usr/share/common-licenses/GPL-3 on  Debian systems. -Files: doc/logo.png doc/logo_small.png doc/favicon.png+Files: doc/logo* doc/favicon.png Copyright: 2007 Henrik Nyh <http://henrik.nyh.se/>            2010 Joey Hess <joey@kitenet.net> License: other
+ doc/assistant.mdwn view
@@ -0,0 +1,13 @@+The git-annex assistant makes git-annex easy to use by providing a+automatic management and syncing of your files, and a friendly web frontend+for configuration.++The git-annex assistant is being+[crowd funded on+Kickstarter](http://www.kickstarter.com/projects/joeyh/git-annex-assistant-like-dropbox-but-with-your-own/).+[[/assistant/Thanks]] to all my backers.++I blog about my work on the git-annex assistant on a daily basis+in [[this_blog|design/assistant/blog]]. Follow along!++See also: The [[design|/design/assistant]] pages.
+ doc/assistant/thanks.mdwn view
@@ -0,0 +1,235 @@+The development of the git-annex assistant was made possible by the+generous donations of many people. I want to say "Thank You!" to each of+you individually, but until I meet all 951 of you, this page will have to+do. You have my most sincere thanks. --[[Joey]]++(If I got your name wrong, or you don't want it publically posted here,+email <joey@kitenet.net>.)++## Major Backers++These people are just inspiring in their enthusiasm and generosity to this+project.++* Jason Scott+* strager++## Beta Testers++Whole weeks of my time were made possible thanks to each of these+people, and their testing is invaluable to the development of+the git-annex assistant.++* Jimmy Tang+* David Pollak+* Pater+* Francois Marier+* Paul Sherwood+* Fred Epma+* Robert Ristroph+* Josh Triplett+* David Haslem+* AJ Ashton+* Svenne Krap+* Drew Hess++## Prioritizers++These forward-thinking people contributed generously just to help+set my priorities in which parts of the git-annex assistant were most+important to develop.++Paul C. Bryan, Paul Tötterman, Don Marti, Dean Thompson, Djoume, David Johnston+Asokan Pichai, Anders Østhus, Dominik Wagenknecht, Charlie Fox, Yazz D. Atlas,+fenchel, Erik Penninga, Richard Hartmann, Graham, Stan Yamane, Ben Skelton,+Ian McEwen, asc, Paul Tagliamonte, Sherif Abouseda, Igor Támara, Anne Wind,+Mesar Hameed, Brandur K. Holm Petersen, Takahiro Inoue, Kai Hendry,+Stephen Youndt, Lee Roberson, Ben Strawbridge, Andrew Greenberg, Alfred Adams+Andrew, Aaron De Vries, Monti Knazze, Jorge Canseco, Hamish, Mark Eichin++And special thanks to Kevin McKenzie, who also gave me a login to a Mac OSX+machine, which has proven invaluable.++## Other Backers++Most of the success of the Kickstarter is thanks to these folks. Some of+them spent significant amounts of money in the guise of getting some+swag. For others, being listed here, and being crucial to making the +git-annex assistant happen was reward enough. Large or small, these+contributions are, literally, my bread and butter this year.++Amitai Schlair, mvime, Romain Lenglet, James Petts, Jouni Uuksulainen,+Wichert Akkerman, Robert Bellus, Kasper Souren, rob, Michiel Buddingh',+Kevin, Rob Avina, Alon Levy, Vikash, Michael Alan Dorman, Harley Pig,+Andreas Olsson, Pietpiet, Christine Spang, Liz Young, Oleg Kosorukov,+Allard Hoeve, Valentin Haenel, Joost Baaij, Nathan Yergler, Nathan Howell,+Frédéric Schütz, Matti Eskelinen, Neil McGovern, Lane Lillquist, db48x,+Stuart Prescott, Mark Matienzo, KarlTheGood, leonm, Drew Slininger, +Andreas Fuchs, Conrad Parker, Johannes Engelke, Battlegarden, Justin Kelly,+Robin Wagner, Thad Ward, crenquis, Trudy Goold, Mike Cochrane, Adam Venturella,+Russell Foo, furankupan, Giorgio Occhioni, andy, mind, Mike Linksvayer,+Stefan Strahl, Jelmer Vernooij, Markus Fix, David Hicks, Justin Azoff,+Iain Nicol, Bob Ippolito, Thomas Lundstrøm, Jason Mandel, federico2,+Edd Cochran, Jose Ortega, Emmett Agnew, Rudy Garcia, Kodi, Nick Rusnov,+Michael Rubin, Tom de Grunt, Richard Murray, Peter, Suzanne Pierce, Jared+Marcotte, folk, Eamon, Jeff Richards, Leo Sutedja, dann frazier, Mikkel+kristiansen, Matt Thomas, Kilian Evang, Gergely Risko, Kristian Rumberg,+Peter Kropf, Mark Hepburn, greymont, D. Joe Anderson, Jeremy Zunker, ctebo,+Manuel Roumain, Jason Walsh, np, Shawn, Johan Tibell, Branden Tyree, Dinyar+Rabady, Andrew Mason, damond armstead, Ethan Aubin, TomTom Tommie, Jimmy+Kaplowitz, Steven Zakulec, mike smith, Jacob Kirkwood, Mark Hymers, Nathan+Collins, Asbjørn Sloth Tønnesen, Misty De Meo,+Jim Paris, Adam Sjøgren, miniBill, Taneli, Kumar Appaiah, Greg Grossmeier,+Sten Turpin, Otavio Salvador, Teemu Hukkanen, Brian Stengaard, bob walker,+bibeneus, andrelo, Yaroslav Halchenko, hesfalling, Tommy L, jlargentaye,+Serafeim Zanikolas, Don Armstrong, Chris Cormack, shayne.oneill, Radu+Raduta, Josh S, Robin Sheat, Henrik Mygind, kodx, Christian, Geoff+Crompton, Brian May, Olivier Berger, Filippo Gadotti, Daniel Curto-Millet,+Eskild Hustvedt, Douglas Soares de Andrade, Tom L, Michael Nacos, Michaël+P., William Roe, Joshua Honeycutt, Brian Kelly, Nathan Rasch, jorge, Martin+Galese, alex cox, Avery Brooks, David Whittington, Dan Martinez, Forrest+Sutton, Jouni K. Seppänen, Arnold Cano, Robert Beaty, Daniel, Kevin Savetz,+Randy, Ernie Braganza, Aaron Haviland, Brian Brunswick, asmw, sean, Michael+Williams, Alexander, Dougal Campbell, Robert Bacchas, Michael Lewis, Collin+Price, Wes Frazier, Matt Wall, Brandon Barclay, Derek van Vliet, Martin+DeMello, kitt hodsden, Stephen Kitt, Leif Bergman, Simon Lilburn, Michael+Prokop, Christiaan Conover, Nick Coombe, Tim Dysinger, Brandon Robinson,+Philip Newborough, keith, Mike Fullerton, Kyle, Phil Windley, Tyler Head,+George V. Reilly, Matthew, Ali Gündüz, Vasyl Diakonov, Paolo Capriotti,+allanfranta, Martin Haeberli, msingle, Vincent Sanders, Steven King, Dmitry+Gribanov, Brandon High, Ben Hughes, Mike Dank, JohnE, Diggory Hardy,+Michael Hanke, valhalla, Samuli Tuomola, Jeff Rau, Benjamin Lebsanft, John+Drago, James, Aidan Cooper, rondie, Paul Kohler, Matthew Knights, Aaron+Junod, Patrick R McDonald, Christopher Browne, Daniel Engel, John SJ+Anderson, Peter Sarossy, Mike Prasad, Christoph Ender, Jan Dittberner,+Zohar, Alexander Jelinek, stefan, Danny O'Brien, Matthew Thode, Nicole+Aptekar, maurice gaston, Chris Adams, Mike Klemencic, Reedy, Subito, Tobias+Gruetzmacher, Ole-Morten Duesund, André Koot, mp, gdop, Cole Scott, Blaker,+Matt Sottile, W. Craig Trader, Louis-Philippe Dubrule, Brian Boucheron,+Duncan Smith, Brenton Buchbach, Kyle Stevenson, Eliot Lash, Egon Elbre,+Praveen, williamji, Thomas Schreiber, Neil Ford, Ryan Pratt, Joshua Brand,+Peter Cox, Markus Engstrom, John Sutherland, Dean Bailey, Ed Summers,+Hillel Arnold, David Fiander, Kurt Yoder, Trevor Muñoz, keri, Ivan+Sergeyenko, Shad Bolling, Tal Kelrich, Steve Presley, gerald ocker, Essex+Taylor, Josh Thomson, Trevor Bramble, Lance Higgins, Frank Motta, Dirk+Kraft, soundray, Joe Haskins, nmjk, Apurva Desai, Colin Dean, docwhat,+Joseph Costello, Jst, flamsmark, Alex Lang, Bill Traynor, Anthony David,+Marc-André Lureau, AlNapp, Giovanni Moretti, John Lawrence, João Paulo+Pizani Flor, Jim Ray, Gregory Thrush, Alistair McGann, Andrew Wied,+Koutarou Furukawa, Xiscu Ignacio, Aaron Sachs, Matt, Quirijn, Chet+Williams, Chris Gray, Bruce Segal, Tom Conder, Louis Tovar, Alex Duryee,+booltox, d8uv, Decklin Foster, Rafael Cervantes, Micah R Ledbetter, Kevin+Sjöberg, Johan Strombom, Zachary Cohen, Jason Lewis, Yves Bilgeri, Ville+Aine, Mark Hurley, Marco Bonetti, Maximilian Haack, Hynek Schlawack,+Michael Leinartas, Andreas Liebschner, Duotrig, Nat Fairbanks, David+Deutsch, Colin Hayhurst, calca, Kyle Goodrick, Marc Bobillier, Robert+Snook, James Kim, Olivier Serres, Jon Redfern, Itai Tavor, Michael+Fladischer, Rob, Jan Schmid, Thomas H., Anders Söderbäck, Abhishek+Dasgupta, Jeff Goeke-Smith, Tommy Thorn, bonuswavepilot, Philipp Edelmann,+Nick, Alejandro Navarro Fulleda, Yann Lallemant, andrew brennan, +Dave Allen Barker Jr, Fabian, Lukas Anzinger, Carl Witty, Andy Taylor,+Andre Klärner, Andrew Chilton, Adam Gibbins, Alexander Wauck, Shane O'Dea,+Paul Waite, Iain McLaren, Maggie Ellen Robin Hess, Willard Korfhage,+Nicolas, Eric Nikolaisen, Magnus Enger, Philipp Kern, Andrew Alderwick,+Raphael Wimmer, Benjamin Schötz, Ana Guerrero, Pete, Pieter van der Eems,+Aaron Suggs, Fred Benenson, Cedric Howe, Lance Ivy, Tieg Zaharia, Kevin+Cooney, Jon Williams, Anton Kudris, Roman Komarov, Brad Hilton, Rick Dakan,+Adam Whitcomb, Paul Casagrande, Evgueni Baldin, Robert Sanders, Kagan+Kayal, Dean Gardiner, micah altman, Cameron Banga, Ross Mcnairn, Oscar+Vilaplana, Robin Graham, Dan Gervais, Jon Åslund, Ragan Webber, Noble Hays,+stephen brown, Sean True, Maciek Swiech, faser, eikenberry, Kai Laborenz,+Sergey Fedoseev, Chris Fournier, Svend Sorensen, Greg K, wojtek, Johan+Ribenfors, Anton, Benjamin, Oleg Tsarev, PsychoHazard, John Cochrane,+Kasper Lauritzen, Patrick Naish, Rob, Keith Nasman, zenmaster, David Royer,+Max Woolf, Dan Gabber, martin rhoads, Martin Schmidinger, Paul+Scott-Wilson, Tom Gromak, Andy Webster, Dale Webb, Jim Watson, Stephen+Hansen, Mircea, Dan Goodenberger, Matthias Fink, Andy Gott, Daniel, Jai+Nelson, Shrayas Rajagopal, Vladimir Rutsky, Alexander, Thorben Westerhuys,+hiruki, Tao Neuendorffer Flaherty, Elline, Marco Hegenberg, robert, Balda,+Brennen Bearnes, Richard Parkins, David Gwilliam, Mark Johnson, Jeff Eaton,+Reddawn90, Heather Pusey, Chris Heinz, Colin, Phatsaphong Thadabusapa,+valunthar, Michael Martinez, redlukas, Yury V. Zaytsev, Blake, Tobias+"betabrain" A., Leon, sopyer, Steve Burnett, bessarabov, sarble, krsch.com,+Jack Self, Jeff Welch, Sam Pettiford, Jimmy Stridh, Diego Barberá, David+Steele, Oscar Ciudad, John Braman, Jacob, Nick Jenkins, Ben Sullivan, Brian+Cleary, James Brosnahan, Darryn Ten, Alex Brem, Jonathan Hitchcock, Jan+Schmidle, Wolfrzx99, Steve Pomeroy, Matthew Sitton, Finkregh, Derek Reeve,+GDR!, Cory Chapman, Marc Olivier Chouinard, Andreas Ryland, Justin, Andreas+Persenius, Games That Teach, Walter Somerville, Bill Haecker, Brandon+Phenix, Justin Shultz, Colin Scroggins, Tim Goddard, Ben Margolin, Michael+Martinez, David Hobbs, Andre Le, Jason Roberts, Bob Lopez, Gert Van Gool,+Robert Carnel, Anders Lundqvist, Aniruddha Sathaye, Marco Gillies, Basti+von Bejga, Esko Arajärvi, Dominik Deobald, Pavel Yudaev, Fionn Behrens,+Davide Favargiotti, Perttu Luukko, Silvan Jegen, Marcelo Bittencourt,+Leonard Peris, smercer, Alexandre Dupas, Solomon Matthews, Peter Hogg,+Richard E. Varian, Ian Oswald, James W. Sarvey, Ed Grether, Frederic+Savard, Sebastian Nerz, Hans-Chr. Jehg, Matija Nalis, Josh DiMauro, Jason+Harris, Adam Byrtek, Tellef, Magnus, Bart Schuurmans, Giel van Schijndel,+Ryan, kiodos, Richard 'maddog' Collins, PawZubr, Jason Gassel, Alex+Boisvert, Richard Thompson, maddi bolton, csights, Aaron Bryson, Jason Chu,+Maxime Côté, Kineteka Systems, Joe Cabezas, Mike Czepiel, Rami Nasra,+Christian Simonsen, Wouter Beugelsdijk, Adam Gibson, Gal Buki, James+Marble, Alan Chambers, Bernd Wiehle, Simon Korzun, Daniel Glassey, Eero af+Heurlin, Mikael, Timo Engelhardt, Wesley Faulkner, Jay Wo, Mike Belle,+David Fowlkes Jr., Jimmy Tang, Karl-Heinz Strass, Ed Mullins, Sam Flint,+Hendrica, Mark Emer Anderson, Joshua Cole, Jan Gondol, Henrik Lindhe,+Albert Delgado, Patrick, Alexa Avellar, Chris, sebsn1349, Maxim Kachur,+Andrew Marshall, Navjot Narula, Alwin Mathew, Christian Mangelsdorf, Avi+Shevin, Kevin S., Guillermo Sanchez Estrada, Alex Krieger, Luca Meier, Will+Jessop, Nick Ruest, Lani Aung, Ulf Benjaminsson, Rudi Engelbrecht, Miles+Matton, Cpt_Threepwood, Adam Kuyper, reacocard, David Kilsheimer, Peter+Olson, Bill Fischofer, Prashant Shah, Simon Bonnick, Alexander Grudtsov,+Antoine Boegli, Richard Warren, Sebastian Rust, AlmostHuman, Timmy+Crawford, PC, Marek Belski, pontus, Douglas S Butts, Eric Wallmander, Joe+Pelar, VIjay, Trahloc, Vernon Vantucci, Matthew baya, Viktor Štujber,+Stephen Akiki, Daniil Zamoldinov, Atley, Chris Thomson, Jacob Briggs, Falko+Richter, Andy Schmitz, Sergi Sagas, Peder Refsnes, Jonatan, Ben, Bill+Niblock, Agustin Acuna, Jeff Curl, Tim Humphrey, bib, James Zarbock,+Lachlan Devantier, Michal Berg, Jeff Lucas, Sid Irish, Franklyn, Jared+Dickson, Olli Jarva, Adam Gibson, Lukas Loesche, Jukka Määttä, Alexander+Lin, Dao Tran, Kirk, briankb, Ryan Villasenor, Daniel Wong, barista, Tomas+Jungwirth, Jesper Hansen, Nivin Singh, Alessandro Tieghi, Billy Roessler,+Peter Fetterer, Pallav Laskar, jcherney, Tyler Wang, Steve, Gigahost, Beat+Wolf, Hannibal Skorepa, aktiveradio, Mark Nunnikhoven, Bret Comnes, Alan+Ruttenberg, Anthony DiSanti, Adam Warkiewicz, Brian Bowman, Jonathan, Mark+Filley, Tobias Mohr, Christian St. Cyr, j. faceless user, Karl Miller,+Thomas Taimre, Vikram, Jason Mountcastle, Jason, Paul Elliott, Alexander,+Stephen Farmer, rayslava, Peter Leurs, Sky Kruse, JP Reeves, John J Schatz,+Martin Sandmair, Will Thompson, John Hergenroeder, Thomas, Christophe+Ponsart, Wolfdog, Eagertolearn, LukasM, Federico Hernandez, Vincent Bernat,+Christian Schmidt, Cameron Colby Thomson, Josh Duff, James Brown, Theron+Trowbridge, Falke, Don Meares, tauu, Greg Cornford, Max Fenton, Kenneth+Reitz, Bruce Bensetler, Mark Booth, Herb Mann, Sindre Sorhus, Chris+Knadler, Daniel Digerås, Derek, Sin Valentine, Ben Gamari, david+lampenscherf, fardles, Richard Burdeniuk, Tobias Kienzler, Dawid Humbla,+Bruno Barbaroxa, D Malt, krivar, James Valleroy, Peter, Tim Geddings,+Matthias Holzinger, Hanen, Petr Vacek, Raymond, Griff Maloney, Andreas+Helveg Rudolph, Nelson Blaha, Colonel Fubar, Skyjacker Captain Gavin+Phoenix, shaun, Michael, Kari Salminen, Rodrigo Miranda, Alan Chan, Justin+Eugene Evans, Isaac, Ben Staffin, Matthew Loar, Magos, Roderik, Eugenio+Piasini, Nico B, Scott Walter, Lior Amsalem, Thongrop Rodsavas, Alberto de+Paola, Shawn Poulen, John Swiderski, lluks, Waelen, Mark Slosarek, Jim+Cristol, mikesol, Bilal Quadri, LuP, Allan Nicolson, Kevin Washington,+Isaac Wedin, Paul Anguiano, ldacruz, Jason Manheim, Sawyer, Jason+Woofenden, Joe Danziger, Declan Morahan, KaptainUfolog, Vladron, bart, Jeff+McNeill, Christian Schlotter, Ben McQuillan, Anthony, Julian, Martin O,+altruism, Eric Solheim, MarkS, ndrwc, Matthew, David Lehn, Matthew+Cisneros, Mike Skoglund, Kristy Carey++## Also thanks to++* The Kickstarter team, who have unleashed much good on the world.+* The Haskell developers, who toiled for 20 years in obscurity+  before most of us noticed them, and on whose giant shoulders I now stand,+  in awe of the view.+* The Git developers, for obvious reasons.+* All of git-annex's early adopters, who turned it from a personal+  toy project into something much more, and showed me the interest was there.+* Rsync.net, for providing me a free account so I can make sure git-annex+  works well with it.+* Anna and Mark, for the loan of the video camera; as well as the rest of+  my family, for your support. Even when I couldn't explain what I was+  working on.+* The Hodges, for providing such a congenial place for me to live and work+  on these first world problems, while you're off helping people in the+  third world.
+ doc/backends/comment_1_375bb1fb5973e8fa67b763f2dd6e404b._comment view
@@ -0,0 +1,13 @@+[[!comment format=mdwn+ username="http://nanotech.nanotechcorp.net/"+ nickname="NanoTech"+ subject="SHA performance"+ date="2012-08-10T04:37:32Z"+ content="""+It turns out that (at least on x86-64 machines) `SHA512` [is faster than][1] `SHA256`. In some benchmarks I performed<sup>1</sup> `SHA256` was 1.8–2.2x slower than `SHA1` while `SHA512` was only 1.5–1.6x slower.++`SHA224` and `SHA384` are effectively just truncated versions of `SHA256` and `SHA512` so their performance characteristics are identical.++[1]: https://community.emc.com/community/edn/rsashare/blog/2010/11/01/sha-2-algorithms-when-sha-512-is-more-secure-and-faster+<sup>1</sup> `time head -c 100000000 /dev/zero | shasum -a 512`+"""]]
+ doc/bugs/commitBuffer:_invalid_argument___40__invalid_character__41__.mdwn view
@@ -0,0 +1,225 @@+What steps will reproduce the problem?++    $ git init a.git+    Initialized empty Git repository in /var/tmp/git-annex-bug/a.git/.git/+    $ cd a.git+    $ git annex init a+    init a ok+    (Recording state in git...)+    $ touch Ren$'\351'+    $ git annex add Ren$'\351'+    add René (checksum...) ok+    (Recording state in git...)+    $ git ci -m "Added Rene'."+    [master (root-commit) a61b796] Added Rene'.+     1 files changed, 1 insertions(+), 0 deletions(-)+     create mode 120000 "Ren\351"+    $ cd ..+    $ git clone -o a a.git b.git+    Cloning into b.git...+    remote: Counting objects: 13, done.+    remote: Compressing objects: 100% (9/9), done.+    remote: Total 13 (delta 1), reused 0 (delta 0)+    Receiving objects: 100% (13/13), done.+    Resolving deltas: 100% (1/1), done.+    $ cd b.git+    $ git annex copy --from=a --fast -v+    (merging a/git-annex into git-annex...)+    copy René +    git-annex: /var/tmp/git-annex-bug/b.git/.git/annex/transfer/download/7c5ee764-e8c6-11e1-b0c5-67c6ec1236d6/SHA256-s0--e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855: commitBuffer: invalid argument (invalid character)+    failed+    (Recording state in git...)+    git-annex: copy: 1 failed++What is the expected output? What do you see instead?++Expect that files will be copied, but they are not.++What version of git-annex are you using? On what operating system?++    $ echo $LANG+    en_US.UTF-8+    $ lsb_release -a+    No LSB modules are available.+    Distributor ID:	Ubuntu+    Description:	Ubuntu 11.10+    Release:	11.10+    Codename:	oneiric+    $ uname -a+    Linux pdx-desktop 3.0.0-23-generic #39-Ubuntu SMP Thu Jul 19 19:18:53 UTC 2012 i686 i686 i386 GNU/Linux+    $ bash --version+    GNU bash, version 4.2.10(1)-release (i686-pc-linux-gnu)+    Copyright (C) 2011 Free Software Foundation, Inc.+    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>++    This is free software; you are free to change and redistribute it.+    There is NO WARRANTY, to the extent permitted by law.+    $ ghc --version+    The Glorious Glasgow Haskell Compilation System, version 7.4.2+    $ git annex version+    git-annex version: 3.20120807+    local repository version: 3+    default repository version: 3+    supported repository versions: 3+    upgrade supported from repository versions: 0 1 2++Please provide any additional information below.++The problem is related to weird characters in file names.  In the+above example, the "weird character" is an accented 'e' (entered with+$'\351' in bash and zsh).  I am able to add the files with weird+characters in their name to one annex, but I cannot copy them to other+annexes using `git annex copy`.++The above example is a simplification of a real problem I am+experiencing.  In my real scenario, the file is not empty.  See the+attachment for some variations, including with non-empty+files. UPDATE: I'm not allowed to add attachments. See below.++May be related to these (long-ago fixed) bugs:+http://git-annex.branchable.com/todo/support-non-utf8-locales/+++"Attachment": Here are my notes, including more examples:++    Programs I'm using:++    $ echo $LANG+    en_US.UTF-8+    $ lsb_release -a+    No LSB modules are available.+    Distributor ID:	Ubuntu+    Description:	Ubuntu 11.10+    Release:	11.10+    Codename:	oneiric+    $ uname -a+    Linux pdx-desktop 3.0.0-23-generic #39-Ubuntu SMP Thu Jul 19 19:18:53 UTC 2012 i686 i686 i386 GNU/Linux+    $ bash --version+    GNU bash, version 4.2.10(1)-release (i686-pc-linux-gnu)+    Copyright (C) 2011 Free Software Foundation, Inc.+    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>++    This is free software; you are free to change and redistribute it.+    There is NO WARRANTY, to the extent permitted by law.+    $ ghc --version+    The Glorious Glasgow Haskell Compilation System, version 7.4.2+    $ git annex version+    git-annex version: 3.20120807+    local repository version: 3+    default repository version: 3+    supported repository versions: 3+    upgrade supported from repository versions: 0 1 2+++    Simplest way to see problem: one empty file with weird character+    (accented e: $'\351') in name:++    $ git init a.git+    Initialized empty Git repository in /var/tmp/git-annex-bug/a.git/.git/+    $ cd a.git+    $ git annex init a+    init a ok+    (Recording state in git...)+    $ touch Ren$'\351'+    $ git annex add Ren$'\351'+    add René (checksum...) ok+    (Recording state in git...)+    $ git ci -m "Added Rene'."+    [master (root-commit) a61b796] Added Rene'.+     1 files changed, 1 insertions(+), 0 deletions(-)+     create mode 120000 "Ren\351"+    $ cd ..+    $ git clone -o a a.git b.git+    Cloning into b.git...+    remote: Counting objects: 13, done.+    remote: Compressing objects: 100% (9/9), done.+    remote: Total 13 (delta 1), reused 0 (delta 0)+    Receiving objects: 100% (13/13), done.+    Resolving deltas: 100% (1/1), done.+    $ cd b.git+    $ git annex copy --from=a --fast -v+    (merging a/git-annex into git-annex...)+    copy René +    git-annex: /var/tmp/git-annex-bug/b.git/.git/annex/transfer/download/7c5ee764-e8c6-11e1-b0c5-67c6ec1236d6/SHA256-s0--e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855: commitBuffer: invalid argument (invalid character)+    failed+    (Recording state in git...)+    git-annex: copy: 1 failed+++    Problem disappears with two empty files:++    $ cd ..+    $ git init a2.git+    Initialized empty Git repository in /var/tmp/git-annex-bug/a2.git/.git/+    $ cd a2.git+    $ git annex init a2+    init a2 ok+    (Recording state in git...)+    $ touch Ren$'\351'+    $ git annex add Ren$'\351'+    add René (checksum...) ok+    (Recording state in git...)+    $ git ci -m "Add Ren$'\351'."+    [master (root-commit) 62ac1c8] Add Ren$'\351'.+     1 files changed, 1 insertions(+), 0 deletions(-)+     create mode 120000 "Ren\351"+    $ touch Rene+    $ git annex add Rene+    add Rene (checksum...) ok+    (Recording state in git...)+    $ git ci -m "Add Rene."+    [master c455523] Add Rene.+     1 files changed, 1 insertions(+), 0 deletions(-)+     create mode 120000 Rene+    $ cd ..+    $ git clone -o a2 a2.git b2.git+    Cloning into b2.git...+    done.+    $ cd b2.git+    $ git annex copy --from=a2 --fast -v+    (merging a2/git-annex into git-annex...)+    copy Rene (from a2...) ok+    (Recording state in git...)+++    Problem returns with two non-empty files:++    $ cd ..+    $ git init a4.git+    Initialized empty Git repository in /var/tmp/git-annex-bug/a4.git/.git/+    $ cd a4.git+    $ git annex init a4+    init a4 ok+    (Recording state in git...)+    $ touch Ren$'\351'+    $ rm Ren$'\351'+    $ ls+    $ echo "some content" > Ren$'\351'+    $ git annex add Ren$'\351'+    add René (checksum...) ok+    (Recording state in git...)+    $ git ci -m "Add Ren$'\351'."+    [master (root-commit) f090d90] Add Ren$'\351'.+     1 files changed, 1 insertions(+), 0 deletions(-)+     create mode 120000 "Ren\351"+    $ echo "some other content" > Rene+    $ git annex add Rene+    add Rene (checksum...) ok+    (Recording state in git...)+    $ git ci -m "Add Rene."+    [master 97c20cd] Add Rene.+     1 files changed, 1 insertions(+), 0 deletions(-)+     create mode 120000 Rene+    $ cd ..+    $ git clone -o a4 a4.git b4.git+    Cloning into b4.git...+    done.+    $ cd b4.git+    $ git annex copy --from=a4 --fast -v+    (merging a4/git-annex into git-annex...)+    copy Rene (from a4...) ok+    copy René +    git-annex: /var/tmp/git-annex-bug/b4.git/.git/annex/transfer/download/a5fcd0d4-e8c8-11e1-bb41-43ce1cb9a9f1/SHA256-s13--1c87b6727f523662df714f06a94ea27fa4d9050c38f4f7712bd4663ffbfdfa01: commitBuffer: invalid argument (invalid character)+    failed+    (Recording state in git...)+    git-annex: copy: 1 failed
+ doc/bugs/fsck_thinks_file_content_is_bad_when_it_isn__39__t.mdwn view
@@ -0,0 +1,35 @@+What steps will reproduce the problem?+What is the expected output? What do you see instead?++I can reproduce it locally, but don't know what's causing it. The file content is the same, I checked with md5sum and sha512sum. But fsck still thinks the content is different. Are there other factors I could check which fsck looks at? I'm using SHA512E backend.++What version of git-annex are you using? On what operating system?++git-annex version: 3.20120807 Ubuntu 12.04 updated on Aug 20th annex was installed via cabal on Aug 20th, all other packages are from ubuntu.++> What is the error message from fsck? --[[Joey]] ++This is the output:++> reinject ....Moon.avi (checksum...) +> Bad file content; moved to /mnt/.../.git/annex/bad/SHA512E-s94402560--ead9db1f34739014a216239d9624bce74d92fe723de06505f9b94cb4c063142ba42b04546f11d3d33869b736e40ded2ff779cb32b26aa10482f09407df0f3c8d.Moon.avi+failed+> (Recording state in git...)+> git-annex: reinject: 1 failed++The original file also has sha512 ead9db1f34739014a216239d9624bce74d92fe723de06505f9b94cb4c063142ba42b04546f11d3d33869b736e40ded2ff779cb32b26aa10482f09407df0f3c8d++>> And what sha512 does the file in .git/annex/bad have **now**? (fsck+>> preserves the original filename; this says nothing about what the+>> current checksum is, if the file has been corrupted). --[[Joey]]++The same, as it's the file I was trying to inject:++ead9db1f34739014a216239d9624bce74d92fe723de06505f9b94cb4c063142ba42b04546f11d3d33869b736e40ded2ff779cb32b26aa10482f09407df0f3c8d  .git/annex/bad/SHA512E-s94402560--ead9db1f34739014a216239d9624bce74d92fe723de06505f9b94cb4c063142ba42b04546f11d3d33869b736e40ded2ff779cb32b26aa10482f09407df0f3c8d.Moon.avi++That's what puzzles me, it is the same file, but for some weird reason git annex thinks it's not.++> Ok, reproduced and fixed the bug. The "E" backends recently got support+> for 2 levels of filename extensions, but were not made to drop them both+> when fscking. [[done]] (I'll release a fixed version probably tomorrow;+> fix is in git now.) --[[Joey]] 
+ doc/bugs/gpg_needs_--use-agent.mdwn view
@@ -0,0 +1,53 @@+git-annex gpg encryption fails here when GPG_AGENT_INFO is set, it needs to be supplied --use-agent to work.++Output from git-annex:++    copy file (to origin...) (gpg) gpg: can't query passphrase in batch mode+    gpg: decryption failed: secret key not available+    Command gpg ["--batch","--no-tty","--quiet","--trust-model","always","--decrypt"] failed; exit code 2+    +    git-annex: user error (Command gpg ["--batch","--no-tty","--quiet","--trust-model","always","--decrypt"] failed; exit code 2)+    failed++Reproduced on command-line:++    [0 zerodogg@browncoats ~]$ echo test > testfile+    [0 zerodogg@browncoats ~]$ gpg -e testfile+    [0 zerodogg@browncoats ~]$ gpg --batch --no-tty --quiet --trust-model always --decrypt testfile.gpg +    gpg: can't query passphrase in batch mode+    gpg: decryption failed: secret key not available+    [2 zerodogg@browncoats ~]$ gpg --use-agent --batch --no-tty --quiet --trust-model always --decrypt testfile.gpg+    test+    [0 zerodogg@browncoats ~]$ ++A patch to fix this issue:+++    From 77cb02d15245e9ad6e127388adcda960000fb3b8 Mon Sep 17 00:00:00 2001+    From: Eskild Hustvedt <code@zerodogg.org>+    Date: Fri, 17 Aug 2012 09:21:44 +0200+    Subject: [PATCH] Explicitly enable agent to ensure decryption works+    +    Otherwise gpg will fail when GPG_AGENT_INFO is set in certain cases.+    ---+     Utility/Gpg.hs |    2 +-+     1 file changed, 1 insertion(+), 1 deletion(-)+    +    diff --git a/Utility/Gpg.hs b/Utility/Gpg.hs+    index e13afe5..c28b209 100644+    --- a/Utility/Gpg.hs+    +++ b/Utility/Gpg.hs+    @@ -29,7 +29,7 @@ stdParams params = do+        b <- getEnv "GPG_BATCH"+        let batch = if isNothing e && isNothing b+            then []+    -       else ["--batch", "--no-tty"]+    +       else ["--batch", "--no-tty", "--use-agent"]+        return $ batch ++ defaults ++ toCommand params+        where+            -- be quiet, even about checking the trustdb+    -- +    1.7.10.4++> Thanks, [[done]].. I never noticed this since I have use-agent set in+> gpg.conf. --[[Joey]
+ doc/bugs/make_install_can__39__t_be_used_with_sudo.mdwn view
@@ -0,0 +1,20 @@+What steps will reproduce the problem?+In the git-annex tree,++    $ make+    $ sudo make install++What is the expected output? What do you see instead?++One would expect git-annex to be installed in the configured prefix. Unfortunately, make tries to rebuild the "all" target before "install". This fails (presumably) due to incorrect environment state,++    ghc -O2 -Wall -ignore-package monads-fd -ignore-package monads-tf -outputdir tmp -IUtility -DWITH_ASSISTANT -DWITH_S3 -DWITH_INOTIFY --make git-annex Utility/libdiskfree.o+    +    Utility/FileSystemEncoding.hs:17:8:+        Could not find module `Data.Bits.Utils':+          Use -v to see a list of the files searched for.+    make: *** [git-annex] Error 1++Removing "all" from the dependencies of "install" allows the process to run to completion, although this is clearly not a satisfactory solution.++> [[fixed|done]] using an ugly stamp file. --[[Joey]] 
+ doc/bugs/reinject_should_leave_file_in_place_on_checksum_mismatch.mdwn view
@@ -0,0 +1,13 @@+What steps will reproduce the problem?++Run git annex reinject source dest with a file that has the wrong content and thus a wrong checksum.++What is the expected output? What do you see instead?++The file should stay in it's original location. Currently it's moved to .git/annex/bad with a mangled filename.++What version of git-annex are you using? On what operating system?++git-annex version: 3.20120807+Ubuntu 12.04 updated on Aug 20th+annex was installed via cabal on Aug 20th, all other packages are from ubuntu.
doc/design/assistant.mdwn view
@@ -1,10 +1,7 @@-The git-annex assistant is being-[crowd funded on Kickstarter](http://www.kickstarter.com/projects/joeyh/git-annex-assistant-like-dropbox-but-with-your-own/).-[[Thanks]] to all my backers.+This is the design site for the git-annex [[/assistant]]. -This is my design and plan for developing it.-Still being fleshed out, still many ideas and use cases to add.-Feel free to chip in with comments! --[[Joey]]+Parts of the design is still being fleshed out, still many ideas+and use cases to add. Feel free to chip in with comments! --[[Joey]]  ## roadmap @@ -23,5 +20,5 @@  ## blog -I'll be blogging about my progress in the [[blog]] on a semi-daily basis.+I'm blogging about my progress in the [[blog]] on a semi-daily basis. Follow along!
doc/design/assistant/blog/day_41__foo.mdwn view
@@ -31,7 +31,7 @@ ----  I put together a preliminary page thanking everyone who contributed to the-git-annex Kickstarter. [[thanks]] The wall-o-names is scary crazy humbling.+git-annex Kickstarter. [[/assistant/thanks]] The wall-o-names is scary crazy humbling.  ---- 
doc/design/assistant/blog/day_49__first_run_experience.mdwn view
@@ -31,7 +31,7 @@  What should the default directory name used by the git-annex assistant be? -[[!poll open=no 19 "Annex" 7 "GitAnnex" 10 "Synced" 0 "AutoSynced" 1 "Shared" 10 "something lowercase!" 1 "CowboyNeal" 1 "Annexbox"]]+[[!poll open=no 19 "Annex" 7 "GitAnnex" 1 "~/git-annex/" 10 "Synced" 0 "AutoSynced" 1 "Shared" 10 "something lowercase!" 1 "CowboyNeal" 1 "Annexbox"]]  (Note: This is a wiki. You can edit this page to add your own [[ikiwiki/directive/poll]] options!)
+ doc/design/assistant/blog/day_56__transfer_control.mdwn view
@@ -0,0 +1,8 @@+A bit under the weather, but got into building buttons to control running+and queued transfers today. The html and javascript side is done, with+each transfer now having a cancel button, as well as a pause/start button.++Canceling queued transfers works. Canceling running transfers will+need some more work, because killing a thread doesn't kill the processes+being run by that thread. So I'll have to make the assistant run separate+git-annex processes for transfers, that can be individually sent signals.
+ doc/design/assistant/blog/day_57__afk.mdwn view
@@ -0,0 +1,40 @@+Probably won't be doing any big coding on the git-annex assistant in the+upcoming week, as I'll be traveling and/or slightly ill enough that I can't+fully get into <a href="http://en.wikipedia.org/wiki/Flow_(psychology)">flow</a>.++---++There was a new Yesod release this week, which required minor changes to+make the webapp build with it. I managed to keep the old version of Yesod+also supported, and plan to keep that working so it can be built with the+version of Yesod available in, eg, Linux distributions. TBD how much pain+that will involve going forward.++---++I'm mulling over how to support stopping/pausing transfers. The problem+is that if the assistant is running a transfer in one thread, and the+webapp is used to cancel it, killing that thread won't necessarily stop the+transfer, because, at least in Haskell's thread model, killing a thread+does not kill processes started by the thread (like rsync).++So one option is to have the transfer thread run a separate git-annex+process, which will run the actual transfer. And killing that process will+stop the transfer nicely. However, using a separate git-annex process means+a little startup overhead for each file transferred (I don't know if it'd+be enough to matter). Also, there's the problem that git-annex is sometimes+not installed in PATH (wish I understood why cabal does that), which+makes it kind of hard for it to run itself. (It can't simply fork, sadly.+See past horrible pain with forking and threads.)++The other option is to change the API for git-annex remotes, so that+their `storeKey` and `retrieveKeyFile` methods return a pid of the program+that they run. When they *do* run a program.. not all remotes do. This+seems like it'd make the code in the remotes hairier, and it is also asking+for bugs, when a remote's implementation changes. Or I could go+lower-level, and make every place in the utility libraries that forks a+process record its pid in a per-thread MVar. Still seems to be asking for+bugs.++Oh well, at least git-annex is already crash-safe, so once I figure out+how to kill a transfer process, I can kill it safely. :)
+ doc/design/assistant/blog/day_58__more_transfer_control.mdwn view
@@ -0,0 +1,26 @@+Unexpectedly managed a mostly productive day today. ++Went ahead with making the assistant run separate `git-annex` processes for+transfers. This will currently fail if git-annex is not installed in PATH.+(Deferred dealing with that.)++To stop a transfer, the webapp needs to signal not just the git-annex+process, but all its children. I'm using process groups for this, which is+working, but I'm not extremely happy with.++Anyway, the webapp's UI can now be used for stopping transfers, and it+wasn't far from there to also implementing pausing of transfers. ++Pausing a transfer is actually the same as stopping it, except a special+signal is sent to the transfer control thread, which keeps running, despite+the git-annex process having been killed, waits for a special resume+signal, and restarts the transfer. This way a paused transfer continues to+occupy a transfer slot, which prevents other queued transfers from running.+This seems to be the behavior that makes sense.++Still need to wire up the webapp's button for starting a transfer. For a+paused transfer, that will just need to resume it. I have not decided what+the button should do when used on a transfer that is queued but not running+yet. Maybe it forces it to run even if all transfer slots are already in+use? Maybe it stops one of the currently running transfers to free up a+slot?
+ doc/design/assistant/blog/day_59__dinner.mdwn view
@@ -0,0 +1,10 @@+Actually did do some work on the webapp today, just fixing a bug I noticed+in a spare moment. Also managed a bit in the plane earlier this week,+implementing resuming of paused transfers. (Still need to test that.)++But the big thing today was dinner with one of my major Kickstarter+backers, and as it turned out, "half the Haskell community of San+Francisco" (3 people). Enjoyed talking about git-annex and haskell with+them.++I'm looking forward to getting back home and back to work on Monday..
+ doc/design/assistant/blog/day_60__taking_stock.mdwn view
@@ -0,0 +1,40 @@+As I prepare to dive back into development, now is a good time to review+what I've built so far, and how well I'm keeping up with my planned+[[roadmap|assistant]].++I started working two and a half months ago, so am nearing the end of+the three months I originally asked to be funded for on Kickstarter.++I've built much of what I planned to build in the first three months --+[[inotify]] is done (and kqueue is basically working, but needs scalability+work), local [[syncing]] is done, the [[webapp]] works, and I've built some+of the first [[configurators]]. It's all functional in a narrow use case+involving syncing to removable drives. ++[[progressbars]] still need to be dealt with, and network syncing needs to+be revisited soon, so that I can start building easy configurators for+further use cases, like using the cloud, or another machine on the local+network.++I think I'm a little behind my original schedule, but not too bad,+and at the same time, I think I've built things rather more solidly than I+expected them to be at this point. I'm particularly happy with how well+the inotify code works, no matter what is thrown at it, and how nice+the UI in the webapp is shaping up to be.++----++I also need to get started on fulfilling my Kickstarter rewards, and+I was happy to spend some time in the airport working on the main+blocker toward that, a lack of a scalable git-annex logo, which is needed+for printing on swag.++Turns out that inkscape has some amazing bitmap tracing capabilities.+I was able to come up with this scalable logo in short order, it +actually took longer to add back the colors, as the tracer generated a+black and white version.++With that roadblock out of the way, I am moving toward ordering large+quantities of usb drives, etc.++[[logo.svg]]
+ doc/design/assistant/blog/day_61__network_connection_detection.mdwn view
@@ -0,0 +1,36 @@+Today, added a thread that deals with recovering when there's been a loss+of network connectivity. When the network's down, the normal immediate+syncing of changes of course doesn't work. So this thread detects when the+network comes back up, and does a pull+push to network remotes, and+triggers scanning for file content that needs to be transferred.++I used dbus again, to detect events generated by both network-manager and+wicd when they've sucessfully brought an interface up. Or, if they're not+available, it polls every 30 minutes.++When the network comes up, in addition to the git pull+push, it also+currently does a full scan of the repo to find files whose contents+need to be transferred to get fully back into sync.++I think it'll be ok for some git pulls and pushes to happen when+moving to a new network, or resuming a laptop (or every 30 minutes when+resorting to polling). But the transfer scan is currently really too heavy+to be appropriate to do every time in those situations. I have an idea for+avoiding that scan when the remote's git-annex branch has not changed. But+I need to refine it, to handle cases like this:++1. a new remote is added+2. file contents start being transferred to (or from it)+3. the network is taken down+4. all the queued transfers fail+5. the network comes back up+6. the transfer scan needs to know the remote was not all in sync+   before #3, and so should do a full scan despite the git-annex branch+   not having changed++---++Doubled the ram in my netbook, which I use for all development. Yesod needs+rather a lot of ram to compile and link, and this should make me quite a+lot more productive. I was struggling with OOM killing bits of chromium+during my last week of development.
+ doc/design/assistant/blog/day_62__smarter_syncing.mdwn view
@@ -0,0 +1,21 @@+Woke up this morning with most of the design for a smarter approach to+[[syncing]] in my head. (This is why I sometimes slip up and tell people I+work on this project 12 hours a day..)++To keep the current `assistant` branch working while I make changes+that break use cases that are working, I've started +developing in a new branch, `assistant-wip`.++In it, I've started getting rid of unnecessary expensive transfer scans.++First optimisation I've done is to detect when a remote that was+disconnected has diverged its `git-annex` branch from the local branch.+Only when that's the case does a new transfer scan need to be done, to find+out what new stuff might be available on that remote, to have caused the+change to its branch, while it was disconnected.++That broke a lot of stuff. I have a plan to fix it written down in+[[syncing]]. It'll involve keeping track of whether a transfer scan has+ever been done (if not, one should be run), and recording logs when+transfers failed, so those failed transfers can be retried when the+remote gets reconnected.
+ doc/design/assistant/blog/day_63__transfer_retries.mdwn view
@@ -0,0 +1,26 @@+Implemented everything I planned out yesterday: Expensive scans are only+done once per remote (unless the remote changed while it was disconnected),+and failed transfers are logged so they can be retried later.++Changed the TransferScanner to prefer to scan low cost remotes first,+as a crude form of scheduling lower-cost transfers first.++A whole bunch of interesting syncing scenarios should work now. I have not+tested them all in detail, but to the best of my knowledge, all these+should work:++* Connect to the network. It starts syncing with a networked remote.+  Disconnect the network. Reconnect, and it resumes where it left off.+* Migrate between networks (ie, home to cafe to work). Any transfers+  that can only happen on one LAN are retried on each new network you+  visit, until they succeed.++One that is not working, but is soooo close:++* Plug in a removable drive. Some transfers start. Yank the plug.+  Plug it back in. All necessary transfers resume, and it ends up+  fully in sync, no matter how many times you yank that cable.++That's not working because of an infelicity in the MountWatcher.+It doesn't notice when the drive gets unmounted, so it ignores+the new mount event.
+ doc/design/assistant/blog/day_64__syncing_robustly.mdwn view
@@ -0,0 +1,33 @@+Working toward getting the data syncing to happen robustly,+so a bunch of improvements.++* Got unmount events to be noticed, so unplugging and replugging+  a removable drive will resume the syncing to it. There's really no+  good unmount event available on dbus in kde, so it uses a heuristic+  there.+* Avoid requeuing a download from a remote that no longer has a key.+* Run a full scan on startup, for multiple reasons, including dealing with+  crashes.++Ran into a strange issue: Occasionally the assistant will run `git-annex+copy` and it will not transfer the requested file. It seems that+when the copy command runs `git ls-files`, it does not see the file+it's supposed to act on in its output.++Eventually I figured out what's going on: When updating the git-annex+branch, it sets `GIT_INDEX_FILE`, and of course environment settings are+not thread-safe! So there's a race between threads that access+the git-annex branch, and the Transferrer thread, or any other thread+that might expect to look at the normal git index.++Unfortunatly, I don't have a fix for this yet.. Git's only interface for+using a different index file is `GIT_INDEX_FILE`. It seems I have a lot of+code to tear apart, to push back the setenv until after forking every git+command. :(++Before I figured out the root problem, I developed a workaround for the+symptom I was seeing. I added a `git-annex transferkey`, which is+optimised to be run by the assistant, and avoids running `git ls-files`, so+avoids the problem. While I plan to fix this environment variable problem+properly, `transferkey` turns out to be so much faster than how it was+using `copy` that I'm going to keep it.
doc/design/assistant/cloud.mdwn view
@@ -13,6 +13,7 @@ * Box.com (it's free, and current method is hard to set up and a sorta   shakey; a better method would be to use its API) * Dropbox? That would be ironic.. Via its API, presumably.+* Amazon Glacier  ## limited space @@ -34,7 +35,7 @@  Of course, one option is to just use github etc to store the git repo. -Two things can store git repos in Anazon S3:+Two things can store git repos in Amazon S3: * <http://gabrito.com/post/storing-git-repositories-in-amazon-s3-for-high-availability> * <http://wiki.cs.pdx.edu/oss2009/index/projects/gits3.html> 
+ doc/design/assistant/comment_11_a38f0f21c2346e65b786d791b6829f9b._comment view
@@ -0,0 +1,12 @@+[[!comment format=mdwn+ username="https://www.google.com/accounts/o8/id?id=AItOawneJXwhacIb0YvvdYFxhlNVpz6Wpg6V7AA"+ nickname="Shayne"+ subject="comment 11"+ date="2012-08-13T00:37:35Z"+ content="""+Yeah definately go with homebrew rather than macports if possible. macports and fink, whilst great systems, have a tendency to sort of create their own alternative-dimension of files within the system that just dont always feel particularly well integrated. As a result \"brew\" has become increasingly more popular to the point its almost ubuquitous now.++Plus its brew-doctor thing is awesome. ++The best approach though thats agnostic to distro systems is to simply go for a generic installer.+"""]]
doc/design/assistant/configurators.mdwn view
@@ -9,7 +9,7 @@  * Create a repository (run when the web app is started without a configured   repository too).-* Clone this repo to a USB drive.+* Clone this repo to a USB drive or other removable drive. **done** * Clone this repo to another host. (Needs [[pairing]]) * Set up Amazon S3. * Set up rsync remote.
doc/design/assistant/inotify.mdwn view
@@ -28,6 +28,10 @@ * honor .gitignore, not adding files it excludes (difficult, probably   needs my own .gitignore parser to avoid excessive running of git commands   to check for ignored files)+* There needs to be a way for a new version of git-annex, when installed,+  to restart any running watch or assistant daemons. Or for the daemons+  to somehow detect it's been upgraded and restart themselves. Needed+  to allow for imcompatable changes and, I suppose, for security upgrades..  ## beyond Linux 
doc/design/assistant/leftovers.mdwn view
@@ -1,6 +1,6 @@ Things that don't fit anywhere else: -* Automatically start daemon on boot or when user logs in.+* Automatically start daemon on boot or when user logs in. **done** * Somehow get content that is unavailable. This is problematic with inotify,   since we only get an event once the user has tried (and failed) to read   from the file. This is only needed if all the files in the directory 
doc/design/assistant/syncing.mdwn view
@@ -3,9 +3,16 @@  ## immediate action items -* At startup, and possibly periodically, or when the network connection-  changes, or some heuristic suggests that a remote was disconnected from-  us for a while, queue remotes for processing by the TransferScanner.+* The syncing code currently doesn't run for special remotes. While+  transfering the git info about special remotes could be a complication,+  if we assume that's synced between existing git remotes, it should be+  possible for them to do file transfers to/from special remotes.+* Often several remotes will be queued for full TransferScanner scans,+  and the scan does the same thing for each .. so it would be better to+  combine them into one scan in such a case.+* Sometimes a Download gets queued from a slow remote, and then a fast+  remote becomes available, and a Download is queued from it. Would be+  good to sort the transfer queue to run fast Downloads (and Uploads) first. * Ensure that when a remote receives content, and updates its location log,   it syncs that update back out. Prerequisite for: * After git sync, identify new content that we don't have that is now available@@ -34,14 +41,17 @@   files in some directories and not others. See for use cases:   [[forum/Wishlist:_options_for_syncing_meta-data_and_data]] * speed up git syncing by using the cached ssh connection for it too-  (will need to use `GIT_SSH`, which needs to point to a command to run,-  not a shell command line)+  Will need to use `GIT_SSH`, which needs to point to a command to run,+  not a shell command line. Beware that the network connection may have+  bounced and the cached ssh connection not be usable. * Map the network of git repos, and use that map to calculate   optimal transfers to keep the data in sync. Currently a naive flood fill   is done instead. * Find a more efficient way for the TransferScanner to find the transfers   that need to be done to sync with a remote. Currently it walks the git-  working copy and checks each file.+  working copy and checks each file. That probably needs to be done once,+  but further calls to the TransferScanner could eg, look at the delta+  between the last scan and the current one in the git-annex branch.  ## data syncing @@ -157,3 +167,42 @@   finishes. **done** * Test MountWatcher on KDE, and add whatever dbus events KDE emits when   drives are mounted. **done**+* It would be nice if, when a USB drive is connected, +  syncing starts automatically. Use dbus on Linux? **done**+* Optimisations in 5c3e14649ee7c404f86a1b82b648d896762cbbc2 temporarily+  broke content syncing in some situations, which need to be added back.+  **done**++  Now syncing a disconnected remote only starts a transfer scan if the+  remote's git-annex branch has diverged, which indicates it probably has+  new files. But that leaves open the cases where the local repo has+  new files; and where the two repos git branches are in sync, but the+  content transfers are lagging behind; and where the transfer scan has+  never been run.++  Need to track locally whether we're believed to be in sync with a remote.+  This includes:+  * All local content has been transferred to it successfully.+  * The remote has been scanned once for data to transfer from it, and all+    transfers initiated by that scan succeeded.++  Note the complication that, if it's initiated a transfer, our queued+  transfer will be thrown out as unnecessary. But if its transfer then+  fails, that needs to be noticed.++  If we're going to track failed transfers, we could just set a flag,+  and use that flag later to initiate a new transfer scan. We need a flag+  in any case, to ensure that a transfer scan is run for each new remote.+  The flag could be `.git/annex/transfer/scanned/uuid`.++  But, if failed transfers are tracked, we could also record them, in +  order to retry them later, without the scan. I'm thinking about a+  directory like `.git/annex/transfer/failed/{upload,download}/uuid/`,+  which failed transfer log files could be moved to.+* A remote may lose content it had before, so when requeuing+  a failed download, check the location log to see if the remote still has+  the content, and if not, queue a download from elsewhere. (And, a remote+  may get content we were uploading from elsewhere, so check the location+  log when queuing a failed Upload too.) **done**+* Fix MountWatcher to notice umounts and remounts of drives. **done**+* Run transfer scan on startup. **done**
− doc/design/assistant/thanks.mdwn
@@ -1,233 +0,0 @@-The development of the git-annex assistant was made possible by the-generous donations of many people. I want to say "Thank You!" to each of-you individually, but until I meet all 951 of you, this page will have to-do. You have my most sincere thanks. --[[Joey]]--(If I got your name wrong, or you don't want it publically posted here,-email <joey@kitenet.net>.)--## Major Backers--These people are just inspiring in their enthusiasm and generosity to this-project.--* Jason Scott-* strager--## Beta Testers--Whole weeks of my time were made possible thanks to each of these-people, and their testing is invaluable to the development of-the git-annex assistant.--* Jimmy Tang-* David Pollak-* Pater-* Francois Marier-* Paul Sherwood-* Fred Epma-* Robert Ristroph-* Josh Triplett-* David Haslem-* AJ Ashton-* Svenne Krap-* Drew Hess--## Prioritizers--These forward-thinking people contributed generously just to help-set my priorities in which parts of the git-annex assistant were most-important to develop.--Paul C. Bryan, Paul Tötterman, Don Marti, Dean Thompson, Djoume, David Johnston-Asokan Pichai, Anders Østhus, Dominik Wagenknecht, Charlie Fox, Yazz D. Atlas,-fenchel, Erik Penninga, Richard Hartmann, Graham, Stan Yamane, Ben Skelton,-Ian McEwen, asc, Paul Tagliamonte, Sherif Abouseda, Igor Támara, Anne Wind,-Mesar Hameed, Brandur K. Holm Petersen, Takahiro Inoue, Kai Hendry,-Stephen Youndt, Lee Roberson, Ben Strawbridge, Andrew Greenberg, Alfred Adams-Andrew, Aaron De Vries, Monti Knazze, Jorge Canseco, Hamish, Mark Eichin--And special thanks to Kevin McKenzie, who also gave me a login to a Mac OSX-machine, which has proven invaluable.--## Other Backers--Most of the success of the Kickstarter is thanks to these folks. Some of-them spent significant amounts of money in the guise of getting some-swag. For others, being listed here, and being crucial to making the -git-annex assistant happen was reward enough. Large or small, these-contributions are, literally, my bread and butter this year.--Amitai Schlair, mvime, Romain Lenglet, James Petts, Jouni Uuksulainen,-Wichert Akkerman, Robert Bellus, Kasper Souren, rob, Michiel Buddingh',-Kevin, Rob Avina, Alon Levy, Vikash, Michael Alan Dorman, Harley Pig,-Andreas Olsson, Pietpiet, Christine Spang, Liz Young, Oleg Kosorukov,-Allard Hoeve, Valentin Haenel, Joost Baaij, Nathan Yergler, Nathan Howell,-Frédéric Schütz, Matti Eskelinen, Neil McGovern, Lane Lillquist, db48x,-Stuart Prescott, Mark Matienzo, KarlTheGood, leonm, Drew Slininger, -Andreas Fuchs, Conrad Parker, Johannes Engelke, Battlegarden, Justin Kelly,-Robin Wagner, Thad Ward, crenquis, Trudy Goold, Mike Cochrane, Adam Venturella,-Russell Foo, furankupan, Giorgio Occhioni, andy, mind, Mike Linksvayer,-Stefan Strahl, Jelmer Vernooij, Markus Fix, David Hicks, Justin Azoff,-Iain Nicol, Bob Ippolito, Thomas Lundstrøm, Jason Mandel, federico2,-Edd Cochran, Jose Ortega, Emmett Agnew, Rudy Garcia, Kodi, Nick Rusnov,-Michael Rubin, Tom de Grunt, Richard Murray, Peter, Suzanne Pierce, Jared-Marcotte, folk, Eamon, Jeff Richards, Leo Sutedja, dann frazier, Mikkel-kristiansen, Matt Thomas, Kilian Evang, Gergely Risko, Kristian Rumberg,-Peter Kropf, Mark Hepburn, greymont, D. Joe Anderson, Jeremy Zunker, ctebo,-Manuel Roumain, Jason Walsh, np, Shawn, Johan Tibell, Branden Tyree, Dinyar-Rabady, Andrew Mason, damond armstead, Ethan Aubin, TomTom Tommie, Jimmy-Kaplowitz, Steven Zakulec, mike smith, Jacob Kirkwood, Mark Hymers, Nathan-Collins, Asbjørn Sloth Tønnesen, Misty De Meo,-Jim Paris, Adam Sjøgren, miniBill, Taneli, Kumar Appaiah, Greg Grossmeier,-Sten Turpin, Otavio Salvador, Teemu Hukkanen, Brian Stengaard, bob walker,-bibeneus, andrelo, Yaroslav Halchenko, hesfalling, Tommy L, jlargentaye,-Serafeim Zanikolas, Don Armstrong, Chris Cormack, shayne.oneill, Radu-Raduta, Josh S, Robin Sheat, Henrik Mygind, kodx, Christian, Geoff-Crompton, Brian May, Olivier Berger, Filippo Gadotti, Daniel Curto-Millet,-Eskild Hustvedt, Douglas Soares de Andrade, Tom L, Michael Nacos, Michaël-P., William Roe, Joshua Honeycutt, Brian Kelly, Nathan Rasch, jorge, Martin-Galese, alex cox, Avery Brooks, David Whittington, Dan Martinez, Forrest-Sutton, Jouni K. Seppänen, Arnold Cano, Robert Beaty, Daniel, Kevin Savetz,-Randy, Ernie Braganza, Aaron Haviland, Brian Brunswick, asmw, sean, Michael-Williams, Alexander, Dougal Campbell, Robert Bacchas, Michael Lewis, Collin-Price, Wes Frazier, Matt Wall, Brandon Barclay, Derek van Vliet, Martin-DeMello, kitt hodsden, Stephen Kitt, Leif Bergman, Simon Lilburn, Michael-Prokop, Christiaan Conover, Nick Coombe, Tim Dysinger, Brandon Robinson,-Philip Newborough, keith, Mike Fullerton, Kyle, Phil Windley, Tyler Head,-George V. Reilly, Matthew, Ali Gündüz, Vasyl Diakonov, Paolo Capriotti,-allanfranta, Martin Haeberli, msingle, Vincent Sanders, Steven King, Dmitry-Gribanov, Brandon High, Ben Hughes, Mike Dank, JohnE, Diggory Hardy,-Michael Hanke, valhalla, Samuli Tuomola, Jeff Rau, Benjamin Lebsanft, John-Drago, James, Aidan Cooper, rondie, Paul Kohler, Matthew Knights, Aaron-Junod, Patrick R McDonald, Christopher Browne, Daniel Engel, John SJ-Anderson, Peter Sarossy, Mike Prasad, Christoph Ender, Jan Dittberner,-Zohar, Alexander Jelinek, stefan, Danny O'Brien, Matthew Thode, Nicole-Aptekar, maurice gaston, Chris Adams, Mike Klemencic, Reedy, Subito, Tobias-Gruetzmacher, Ole-Morten Duesund, André Koot, mp, gdop, Cole Scott, Blaker,-Matt Sottile, W. Craig Trader, Louis-Philippe Dubrule, Brian Boucheron,-Duncan Smith, Brenton Buchbach, Kyle Stevenson, Eliot Lash, Egon Elbre,-Praveen, williamji, Thomas Schreiber, Neil Ford, Ryan Pratt, Joshua Brand,-Peter Cox, Markus Engstrom, John Sutherland, Dean Bailey, Ed Summers,-Hillel Arnold, David Fiander, Kurt Yoder, Trevor Muñoz, keri, Ivan-Sergeyenko, Shad Bolling, Tal Kelrich, Steve Presley, gerald ocker, Essex-Taylor, Josh Thomson, Trevor Bramble, Lance Higgins, Frank Motta, Dirk-Kraft, soundray, Joe Haskins, nmjk, Apurva Desai, Colin Dean, docwhat,-Joseph Costello, Jst, flamsmark, Alex Lang, Bill Traynor, Anthony David,-Marc-André Lureau, AlNapp, Giovanni Moretti, John Lawrence, João Paulo-Pizani Flor, Jim Ray, Gregory Thrush, Alistair McGann, Andrew Wied,-Koutarou Furukawa, Xiscu Ignacio, Aaron Sachs, Matt, Quirijn, Chet-Williams, Chris Gray, Bruce Segal, Tom Conder, Louis Tovar, Alex Duryee,-booltox, d8uv, Decklin Foster, Rafael Cervantes, Micah R Ledbetter, Kevin-Sjöberg, Johan Strombom, Zachary Cohen, Jason Lewis, Yves Bilgeri, Ville-Aine, Mark Hurley, Marco Bonetti, Maximilian Haack, Hynek Schlawack,-Michael Leinartas, Andreas Liebschner, Duotrig, Nat Fairbanks, David-Deutsch, Colin Hayhurst, calca, Kyle Goodrick, Marc Bobillier, Robert-Snook, James Kim, Olivier Serres, Jon Redfern, Itai Tavor, Michael-Fladischer, Rob, Jan Schmid, Thomas H., Anders Söderbäck, Abhishek-Dasgupta, Jeff Goeke-Smith, Tommy Thorn, bonuswavepilot, Philipp Edelmann,-Nick, Alejandro Navarro Fulleda, Yann Lallemant, andrew brennan, -Dave Allen Barker Jr, Fabian, Lukas Anzinger, Carl Witty, Andy Taylor,-Andre Klärner, Andrew Chilton, Adam Gibbins, Alexander Wauck, Shane O'Dea,-Paul Waite, Iain McLaren, Maggie Ellen Robin Hess, Willard Korfhage,-Nicolas, Eric Nikolaisen, Magnus Enger, Philipp Kern, Andrew Alderwick,-Raphael Wimmer, Benjamin Schötz, Ana Guerrero, Pete, Pieter van der Eems,-Aaron Suggs, Fred Benenson, Cedric Howe, Lance Ivy, Tieg Zaharia, Kevin-Cooney, Jon Williams, Anton Kudris, Roman Komarov, Brad Hilton, Rick Dakan,-Adam Whitcomb, Paul Casagrande, Evgueni Baldin, Robert Sanders, Kagan-Kayal, Dean Gardiner, micah altman, Cameron Banga, Ross Mcnairn, Oscar-Vilaplana, Robin Graham, Dan Gervais, Jon Åslund, Ragan Webber, Noble Hays,-stephen brown, Sean True, Maciek Swiech, faser, eikenberry, Kai Laborenz,-Sergey Fedoseev, Chris Fournier, Svend Sorensen, Greg K, wojtek, Johan-Ribenfors, Anton, Benjamin, Oleg Tsarev, PsychoHazard, John Cochrane,-Kasper Lauritzen, Patrick Naish, Rob, Keith Nasman, zenmaster, David Royer,-Max Woolf, Dan Gabber, martin rhoads, Martin Schmidinger, Paul-Scott-Wilson, Tom Gromak, Andy Webster, Dale Webb, Jim Watson, Stephen-Hansen, Mircea, Dan Goodenberger, Matthias Fink, Andy Gott, Daniel, Jai-Nelson, Shrayas Rajagopal, Vladimir Rutsky, Alexander, Thorben Westerhuys,-hiruki, Tao Neuendorffer Flaherty, Elline, Marco Hegenberg, robert, Balda,-Brennen Bearnes, Richard Parkins, David Gwilliam, Mark Johnson, Jeff Eaton,-Reddawn90, Heather Pusey, Chris Heinz, Colin, Phatsaphong Thadabusapa,-valunthar, Michael Martinez, redlukas, Yury V. Zaytsev, Blake, Tobias-"betabrain" A., Leon, sopyer, Steve Burnett, bessarabov, sarble, krsch.com,-Jack Self, Jeff Welch, Sam Pettiford, Jimmy Stridh, Diego Barberá, David-Steele, Oscar Ciudad, John Braman, Jacob, Nick Jenkins, Ben Sullivan, Brian-Cleary, James Brosnahan, Darryn Ten, Alex Brem, Jonathan Hitchcock, Jan-Schmidle, Wolfrzx99, Steve Pomeroy, Matthew Sitton, Finkregh, Derek Reeve,-GDR!, Cory Chapman, Marc Olivier Chouinard, Andreas Ryland, Justin, Andreas-Persenius, Games That Teach, Walter Somerville, Bill Haecker, Brandon-Phenix, Justin Shultz, Colin Scroggins, Tim Goddard, Ben Margolin, Michael-Martinez, David Hobbs, Andre Le, Jason Roberts, Bob Lopez, Gert Van Gool,-Robert Carnel, Anders Lundqvist, Aniruddha Sathaye, Marco Gillies, Basti-von Bejga, Esko Arajärvi, Dominik Deobald, Pavel Yudaev, Fionn Behrens,-Davide Favargiotti, Perttu Luukko, Silvan Jegen, Marcelo Bittencourt,-Leonard Peris, smercer, Alexandre Dupas, Solomon Matthews, Peter Hogg,-Richard E. Varian, Ian Oswald, James W. Sarvey, Ed Grether, Frederic-Savard, Sebastian Nerz, Hans-Chr. Jehg, Matija Nalis, Josh DiMauro, Jason-Harris, Adam Byrtek, Tellef, Magnus, Bart Schuurmans, Giel van Schijndel,-Ryan, kiodos, Richard 'maddog' Collins, PawZubr, Jason Gassel, Alex-Boisvert, Richard Thompson, maddi bolton, csights, Aaron Bryson, Jason Chu,-Maxime Côté, Kineteka Systems, Joe Cabezas, Mike Czepiel, Rami Nasra,-Christian Simonsen, Wouter Beugelsdijk, Adam Gibson, Gal Buki, James-Marble, Alan Chambers, Bernd Wiehle, Simon Korzun, Daniel Glassey, Eero af-Heurlin, Mikael, Timo Engelhardt, Wesley Faulkner, Jay Wo, Mike Belle,-David Fowlkes Jr., Jimmy Tang, Karl-Heinz Strass, Ed Mullins, Sam Flint,-Hendrica, Mark Emer Anderson, Joshua Cole, Jan Gondol, Henrik Lindhe,-Albert Delgado, Patrick, Alexa Avellar, Chris, sebsn1349, Maxim Kachur,-Andrew Marshall, Navjot Narula, Alwin Mathew, Christian Mangelsdorf, Avi-Shevin, Kevin S., Guillermo Sanchez Estrada, Alex Krieger, Luca Meier, Will-Jessop, Nick Ruest, Lani Aung, Ulf Benjaminsson, Rudi Engelbrecht, Miles-Matton, Cpt_Threepwood, Adam Kuyper, reacocard, David Kilsheimer, Peter-Olson, Bill Fischofer, Prashant Shah, Simon Bonnick, Alexander Grudtsov,-Antoine Boegli, Richard Warren, Sebastian Rust, AlmostHuman, Timmy-Crawford, PC, Marek Belski, pontus, Douglas S Butts, Eric Wallmander, Joe-Pelar, VIjay, Trahloc, Vernon Vantucci, Matthew baya, Viktor Štujber,-Stephen Akiki, Daniil Zamoldinov, Atley, Chris Thomson, Jacob Briggs, Falko-Richter, Andy Schmitz, Sergi Sagas, Peder Refsnes, Jonatan, Ben, Bill-Niblock, Agustin Acuna, Jeff Curl, Tim Humphrey, bib, James Zarbock,-Lachlan Devantier, Michal Berg, Jeff Lucas, Sid Irish, Franklyn, Jared-Dickson, Olli Jarva, Adam Gibson, Lukas Loesche, Jukka Määttä, Alexander-Lin, Dao Tran, Kirk, briankb, Ryan Villasenor, Daniel Wong, barista, Tomas-Jungwirth, Jesper Hansen, Nivin Singh, Alessandro Tieghi, Billy Roessler,-Peter Fetterer, Pallav Laskar, jcherney, Tyler Wang, Steve, Gigahost, Beat-Wolf, Hannibal Skorepa, aktiveradio, Mark Nunnikhoven, Bret Comnes, Alan-Ruttenberg, Anthony DiSanti, Adam Warkiewicz, Brian Bowman, Jonathan, Mark-Filley, Tobias Mohr, Christian St. Cyr, j. faceless user, Karl Miller,-Thomas Taimre, Vikram, Jason Mountcastle, Jason, Paul Elliott, Alexander,-Stephen Farmer, rayslava, Peter Leurs, Sky Kruse, JP Reeves, John J Schatz,-Martin Sandmair, Will Thompson, John Hergenroeder, Thomas, Christophe-Ponsart, Wolfdog, Eagertolearn, LukasM, Federico Hernandez, Vincent Bernat,-Christian Schmidt, Cameron Colby Thomson, Josh Duff, James Brown, Theron-Trowbridge, Falke, Don Meares, tauu, Greg Cornford, Max Fenton, Kenneth-Reitz, Bruce Bensetler, Mark Booth, Herb Mann, Sindre Sorhus, Chris-Knadler, Daniel Digerås, Derek, Sin Valentine, Ben Gamari, david-lampenscherf, fardles, Richard Burdeniuk, Tobias Kienzler, Dawid Humbla,-Bruno Barbaroxa, D Malt, krivar, James Valleroy, Peter, Tim Geddings,-Matthias Holzinger, Hanen, Petr Vacek, Raymond, Griff Maloney, Andreas-Helveg Rudolph, Nelson Blaha, Colonel Fubar, Skyjacker Captain Gavin-Phoenix, shaun, Michael, Kari Salminen, Rodrigo Miranda, Alan Chan, Justin-Eugene Evans, Isaac, Ben Staffin, Matthew Loar, Magos, Roderik, Eugenio-Piasini, Nico B, Scott Walter, Lior Amsalem, Thongrop Rodsavas, Alberto de-Paola, Shawn Poulen, John Swiderski, lluks, Waelen, Mark Slosarek, Jim-Cristol, mikesol, Bilal Quadri, LuP, Allan Nicolson, Kevin Washington,-Isaac Wedin, Paul Anguiano, ldacruz, Jason Manheim, Sawyer, Jason-Woofenden, Joe Danziger, Declan Morahan, KaptainUfolog, Vladron, bart, Jeff-McNeill, Christian Schlotter, Ben McQuillan, Anthony, Julian, Martin O,-altruism, Eric Solheim, MarkS, ndrwc, Matthew, David Lehn, Matthew-Cisneros, Mike Skoglund, Kristy Carey--## Also thanks to--* The Kickstarter team, who have unleashed much good on the world.-* The Haskell developers, who toiled for 20 years in obscurity-  before most of us noticed them, and on whose giant shoulders I now stand,-  in awe of the view.-* The Git developers, for obvious reasons.-* All of git-annex's early adopters, who turned it from a personal-  toy project into something much more, and showed me the interest was there.-* Anna and Mark, for the loan of the video camera; as well as the rest of-  my family, for your support. Even when I couldn't explain what I was-  working on.-* The Hodges, for providing such a congenial place for me to live and work-  on these first world problems, while you're off helping people in the-  third world.
doc/design/assistant/webapp.mdwn view
@@ -1,27 +1,14 @@ The webapp is a web server that displays a shiny interface. -## security--* Listen only to localhost. **done**-* Instruct the user's web browser to open an url that contains a secret-  token. This guards against other users on the same system. **done**-  (I would like to avoid passwords or other authentication methods,-  it's your local system.)-* Don't pass the url with secret token directly to the web browser,-  as that exposes it to `ps`. Instead, write a html file only the user can read,-  that redirects to the webapp. **done**-* Alternative for Linux at least would be to write a small program using-  GTK+ Webkit, that runs the webapp, and can know what user ran it, avoiding-  needing authentication.- ## interface  * list of files uploading and downloading **done** * button to open file browser on repo (`xdg-open $DIR`) **done** * progress bars for each file (see [[progressbars]]) * drag and drop to reorder-* cancel and pause-* keep it usable w/o javascript, and accessible to blind, etc+* cancel, pause, and resume **done**+* keep it usable w/o javascript **done**+* keep it accessible to blind, etc  ## other features @@ -42,3 +29,17 @@ * record repository that was made, and use it next time run **done** * write a pid file, to prevent more than one first-start process running   at once **done**++## security **acceptable/done**++* Listen only to localhost. **done**+* Instruct the user's web browser to open an url that contains a secret+  token. This guards against other users on the same system. **done**+  (I would like to avoid passwords or other authentication methods,+  it's your local system.)+* Don't pass the url with secret token directly to the web browser,+  as that exposes it to `ps`. Instead, write a html file only the user can read,+  that redirects to the webapp. **done**+* Alternative for Linux at least would be to write a small program using+  GTK+ Webkit, that runs the webapp, and can know what user ran it, avoiding+  needing authentication.
+ doc/design/encryption/comment_5_520e60aa53217b5ba428d4c05d897dee._comment view
@@ -0,0 +1,16 @@+[[!comment format=mdwn+ username="https://www.google.com/accounts/o8/id?id=AItOawkS6aFVrEwOrDuQBTMXxtGHtueA69NS_jo"+ nickname="Hans"+ subject="using sshfs + cryptmount is more secure"+ date="2012-08-14T13:41:47Z"+ content="""+\"For git-annex, note that an attacker with local machine access can tell at least all the filenames and metadata of files stored in the encrypted remote anyway, and can access whatever content is stored locally.\"++Better security is given by sshfs + cryptmount, which I used when I recently setup a git-annex repository on a free shell account from a provider I do not trust.++See http://code.cjb.net/free-secure-online-backup.html for what I did to get a really secure solution.++Kind regards,++Hans Ekbrand+"""]]
+ doc/design/encryption/comment_6_d677fead0fe0c543f48f07d85f83f592._comment view
@@ -0,0 +1,14 @@+[[!comment format=mdwn+ username="https://www.google.com/accounts/o8/id?id=AItOawmBUR4O9mofxVbpb8JV9mEbVfIYv670uJo"+ nickname="Justin"+ subject="comment 6"+ date="2012-08-14T14:10:40Z"+ content="""+Hans,++You are misunderstanding how git-annex encryption works.  The \"untrusted host\" and the \"local machine\" are not the same machine.  git-annex only transfers pre-encrypted files to the \"untrusted host\".++You should setup a git-annex encrypted remote and watch how it works so you can see for yourself that it is not insecure.++Your solution does not provide better security, it accomplishes the same thing as git-annex in a more complicated way.  In addition, since you are mounting the image from the client your solution will not work with multiple clients.+"""]]
+ doc/design/encryption/comment_7_c1c38a09b1276e29adc3ba564dc0fe4e._comment view
@@ -0,0 +1,14 @@+[[!comment format=mdwn+ username="https://www.google.com/accounts/o8/id?id=AItOawkS6aFVrEwOrDuQBTMXxtGHtueA69NS_jo"+ nickname="Hans"+ subject="comment 7"+ date="2012-08-15T19:16:10Z"+ content="""+Justin,++thanks for clearing that up. It's great that git-annex has implemented mechanisms to work securely on untrusted hosts. My solution is thus only interesting for files that are impractical to manage with git-annex (e.g. data for/from applications that need rw-access to a large number of files). And, possibly, for providers that do not provide rsync.++Your remark that my solution does not work with more than one client, is not entirely accurate. No more than one client can access the repository at any given time, but as long as access is not simultaneous, any number of clients can access the repository. Still, your point is taken, it's a limitation I should mention.++It would be interesting to compare the performance of individually encrypted files to encrypted image-file. My intuition says that encrypted image-file should be faster, but that's just a guess.+"""]]
+ doc/download/comment_1_ec2578241a966cfcdd43f2a26a5c8709._comment view
@@ -0,0 +1,13 @@+[[!comment format=mdwn+ username="https://www.google.com/accounts/o8/id?id=AItOawm3uJkdiJJejvqix9dULvw_Ma7DCtB-6zA"+ nickname="Ian"+ subject="git clone git://git-annex.branchable.com/ gives an error"+ date="2012-08-13T20:57:34Z"+ content="""+Thought you would want to know++error: unable to create file doc/forum/__91__Installation__93___base-3.0.3.2_requires_syb___61____61__0.1.0.2_however_syb-0.1.0.2_was_excluded_because_json-0.5_requires_syb___62____61__0.3.3.mdwn (File name too long)+fatal: cannot create directory at 'doc/forum/__91__Installation__93___base-3.0.3.2_requires_syb___61____61__0.1.0.2_however_syb-0.1.0.2_was_excluded_because_json-0.5_requires_syb___62____61__0.3.3': File name too long+++"""]]
+ doc/download/comment_2_ee0d158ac59903737dbc4ef632f11fe3._comment view
@@ -0,0 +1,7 @@+[[!comment format=mdwn+ username="http://joeyh.name/"+ subject="comment 2"+ date="2012-08-16T23:28:30Z"+ content="""+Ok, I've renamed that long-ish filename.+"""]]
+ doc/forum/DBus_on_Ubuntu_12.04__63__.mdwn view
@@ -0,0 +1,3 @@+I tried to compile the assitant branch on Ubuntu 12.04. But i depends on the DBus libraryw hich does not compile with some glibberish errors. Is there a way to solve this?++
doc/install/OSX.mdwn view
@@ -11,6 +11,11 @@ cabal install git-annex --bindir=$HOME/bin </pre> +Do not forget to add to your PATH variable your ~/bin folder. In your .bashrc, for example:+<pre>+PATH=~/bin:/usr/bin/local:$PATH+</pre>+ See also:  * [[forum/OSX__39__s_haskell-platform_statically_links_things]]
+ doc/logo-bw.svg view
@@ -0,0 +1,60 @@+<?xml version="1.0" encoding="UTF-8" standalone="no"?>+<!-- Created with Inkscape (http://www.inkscape.org/) -->++<svg+   xmlns:dc="http://purl.org/dc/elements/1.1/"+   xmlns:cc="http://creativecommons.org/ns#"+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"+   xmlns:svg="http://www.w3.org/2000/svg"+   xmlns="http://www.w3.org/2000/svg"+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"+   width="640px"+   height="480px"+   id="svg3134"+   version="1.1"+   inkscape:version="0.48.3.1 r9886"+   sodipodi:docname="New document 11">+  <defs+     id="defs3136" />+  <sodipodi:namedview+     id="base"+     pagecolor="#ffffff"+     bordercolor="#666666"+     borderopacity="1.0"+     inkscape:pageopacity="0.0"+     inkscape:pageshadow="2"+     inkscape:zoom="0.77472527"+     inkscape:cx="317.41844"+     inkscape:cy="245.16312"+     inkscape:current-layer="layer1"+     inkscape:document-units="px"+     showgrid="false"+     inkscape:window-width="800"+     inkscape:window-height="564"+     inkscape:window-x="0"+     inkscape:window-y="12"+     inkscape:window-maximized="0" />+  <metadata+     id="metadata3139">+    <rdf:RDF>+      <cc:Work+         rdf:about="">+        <dc:format>image/svg+xml</dc:format>+        <dc:type+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />+        <dc:title></dc:title>+      </cc:Work>+    </rdf:RDF>+  </metadata>+  <g+     id="layer1"+     inkscape:label="Layer 1"+     inkscape:groupmode="layer">+    <path+       style="fill:#000000"+       d="m 302.43431,440.4468 c -14.88228,-4.33874 -18.89443,-6.47398 -28.38217,-15.10481 -13.08558,-11.90371 -17.72561,-23.29726 -17.72561,-43.52501 0,-18.30772 4.14768,-29.96528 14.34194,-40.30981 7.27131,-7.37848 18.36439,-13.25052 25.03206,-13.25052 4.73347,0 4.8315,0.27458 4.8315,13.5325 l 0,13.5325 -6.57204,3.04787 c -9.16684,4.25125 -13.05127,12.36242 -12.09267,25.25093 1.53891,20.69072 13.75689,28.81207 43.34566,28.81207 14.25099,0 19.3577,-0.72886 23.91428,-3.41316 12.51899,-7.37499 18.80704,-23.65294 14.28477,-36.97908 -2.56222,-7.55028 -13.65238,-17.88336 -19.19364,-17.88336 -3.36269,0 -3.73837,1.31029 -3.73837,13.03841 l 0,13.0384 -11.88928,-0.55077 -11.88929,-0.55079 0,-25.90026 0,-25.90027 35.19228,0 35.19228,0 0.57499,9.7126 c 0.49269,8.32267 0.0845,9.71665 -2.85343,9.74093 -8.20311,0.0677 -8.706,2.84359 -2.15276,11.88256 6.12053,8.44215 6.33349,9.33743 6.33349,26.62529 0,15.38301 -0.65924,19.1446 -4.70538,26.84845 -9.93611,18.91837 -28.93477,29.1492 -56.00199,30.15722 -10.88743,0.40545 -20.4551,-0.28006 -25.84662,-1.85189 z m -45.65485,-139.01542 0,-13.87514 65.62885,0 65.62884,0 0,13.87514 0,13.87514 -65.62884,0 -65.62885,0 0,-13.87514 z m 49.45942,-38.8504 0,-15.72516 -24.72971,0 -24.72971,0 0,-12.95013 0,-12.95014 24.72971,0 24.72971,0 0,-16.65017 0,-16.65017 15.21829,0 15.21828,0 0,16.65017 0,16.65017 25.68085,0 25.68085,0 0,12.89643 0,12.89645 -25.20528,0.51619 -25.20528,0.51621 -0.5525,15.26265 -0.5525,15.26266 -15.14135,0 -15.14136,0 0,-15.72516 z m 90.58314,-28.97078 c -1.413,-6.87082 -1.79669,-6.34506 5.78198,-7.92291 5.58749,-1.16331 6.09939,-0.83956 7.33692,4.64003 1.45579,6.44604 -0.79787,9.0505 -7.87441,9.1001 -3.02463,0.0211 -4.34501,-1.44337 -5.24449,-5.81722 z m -160.69546,0.49827 c -1.79783,-1.10787 -2.17745,-3.37832 -1.25087,-7.48118 1.23754,-5.47959 1.74944,-5.80335 7.33693,-4.64004 7.57866,1.57785 7.19497,1.05209 5.78198,7.92291 -1.24077,6.03343 -6.10031,7.75249 -11.86804,4.19831 z m 190.42463,-6.76941 c -1.85277,-5.87101 -1.66966,-6.25919 3.83255,-8.12458 3.17805,-1.07743 5.9948,-1.95896 6.25947,-1.95896 0.91633,0 4.67209,11.70301 3.97372,12.38219 -0.38574,0.37517 -3.27056,1.39869 -6.41068,2.27453 -5.34046,1.48954 -5.83503,1.19409 -7.65506,-4.57318 z m -216.85329,0.64986 c -3.40034,-0.87401 -6.18243,-1.85733 -6.18243,-2.18515 0,-0.32782 0.94953,-3.24505 2.11007,-6.48271 1.73496,-4.84015 2.83405,-5.67166 6.18243,-4.67733 7.88037,2.34017 8.42794,3.15845 6.18018,9.23554 -1.96709,5.31825 -2.52062,5.59264 -8.29025,4.10965 z m 245.52541,-10.67191 c -2.12815,-5.48318 -2.11652,-5.49574 11.85359,-12.82409 22.7641,-11.94143 40.5838,-25.97488 57.05249,-44.93026 l 7.53031,-8.66734 5.41145,4.25151 5.41145,4.25151 -17.60152,17.90565 c -16.73035,17.01941 -37.6183,32.42395 -56.39658,41.59159 -10.27596,5.01677 -10.722,4.96367 -13.26119,-1.57857 z m -286.33038,-6.27889 c -21.55151,-11.9442 -31.63729,-19.70355 -49.98909,-38.45829 l -16.54083,-16.90401 5.39695,-4.24028 5.39696,-4.24026 7.53031,8.66734 c 16.46869,18.95538 34.28839,32.98883 57.05248,44.93026 13.97012,7.32835 13.98175,7.34091 11.8536,12.82409 -1.17162,3.01872 -3.03333,5.48856 -4.13709,5.48856 -1.10378,0 -8.55726,-3.63034 -16.56329,-8.06741 z m 375.66016,-70.84688 c -3.97648,-2.69927 -4.05764,-3.18834 -1.36824,-8.24615 2.7937,-5.254 2.98784,-5.31188 8.50732,-2.53606 6.47782,3.25777 6.35114,2.92151 3.44074,9.13364 -2.52039,5.37967 -4.60478,5.70447 -10.57982,1.64857 z M 89.683687,134.84263 c -2.910382,-6.21213 -3.037055,-5.87587 3.440759,-9.13364 5.520337,-2.77624 5.713305,-2.71854 8.512274,2.54533 2.72546,5.12566 2.63957,5.52893 -1.77689,8.3432 -6.255304,3.98601 -7.594703,3.75504 -10.176143,-1.75489 z M 558.86885,114.49806 c -4.66412,-2.46246 -4.94939,-3.21135 -3.14292,-8.25101 1.09275,-3.04849 2.20334,-5.54273 2.46799,-5.54273 1.15984,0 12.46263,4.10838 12.46263,4.52996 0,2.20567 -4.45138,12.10382 -5.41738,12.04614 -0.68234,-0.0407 -3.54898,-1.29279 -6.37032,-2.78236 z M 76.248436,107.82834 c -1.1486,-3.20438 -2.088367,-6.03672 -2.088367,-6.2941 0,-0.42158 11.30279,-4.529954 12.462632,-4.529954 0.264646,0 1.376722,2.498376 2.471297,5.551964 1.832586,5.11256 1.553673,5.77145 -3.524022,8.32508 -7.178882,3.61035 -6.90035,3.70158 -9.32154,-3.05299 z M 568.27869,86.478917 c -4.16144,-1.0576 -4.15124,-1.435966 0.47558,-17.673656 4.71707,-16.554414 4.76128,-15.866207 -0.95115,-14.804204 -3.51666,0.653779 -4.75571,0.08973 -4.75571,-2.164633 0,-1.67682 1.09334,-3.456779 2.42964,-3.95547 1.33629,-0.498709 4.53447,-4.218875 7.10707,-8.267031 3.85384,-6.064326 5.73436,-7.360301 10.68013,-7.360301 4.78765,0 6.24005,0.919681 7.17525,4.543462 0.64491,2.498894 2.13408,6.869564 3.30925,9.712599 4.714,11.40422 2.47433,18.328434 -4.06643,12.571786 -3.92535,-3.4548 -3.4906,-4.351652 -9.63904,19.885132 -2.24473,8.848659 -3.45803,9.62341 -11.76459,7.512316 z M 62.514449,66.506779 57.950276,48.599557 52.639,52.662624 c -2.921206,2.234675 -5.630041,3.75306 -6.019648,3.374157 -0.389608,-0.378884 0.859281,-4.428205 2.775301,-8.998492 1.916001,-4.570287 3.965028,-9.76649 4.553405,-11.547134 0.734891,-2.224093 3.046111,-3.237533 7.383397,-3.237533 5.021102,0 8.14882,1.812001 15.277977,8.851138 4.930401,4.868122 8.964349,10.279427 8.964349,12.025124 0,4.517598 -2.081195,3.939726 -6.8916,-1.913568 -2.299596,-2.798153 -4.818203,-4.473179 -5.596904,-3.722293 -0.778719,0.750904 0.522064,8.499468 2.890599,17.219014 2.368555,8.719565 3.936551,16.213492 3.484473,16.653149 -0.452097,0.439676 -3.422934,1.3053 -6.601862,1.923613 l -5.779866,1.12422 -4.564172,-17.90724 z"+       id="path3050"+       inkscape:connector-curvature="0" />+  </g>+</svg>
+ doc/logo.svg view
@@ -0,0 +1,77 @@+<?xml version="1.0" encoding="UTF-8" standalone="no"?>+<!-- Created with Inkscape (http://www.inkscape.org/) -->++<svg+   xmlns:dc="http://purl.org/dc/elements/1.1/"+   xmlns:cc="http://creativecommons.org/ns#"+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"+   xmlns:svg="http://www.w3.org/2000/svg"+   xmlns="http://www.w3.org/2000/svg"+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"+   width="640px"+   height="480px"+   id="svg3134"+   version="1.1"+   inkscape:version="0.48.3.1 r9886"+   sodipodi:docname="git-annex.svg">+  <defs+     id="defs3136" />+  <sodipodi:namedview+     id="base"+     pagecolor="#ffffff"+     bordercolor="#666666"+     borderopacity="1.0"+     inkscape:pageopacity="0.0"+     inkscape:pageshadow="2"+     inkscape:zoom="0.77472527"+     inkscape:cx="398.6665"+     inkscape:cy="232.05718"+     inkscape:current-layer="layer1"+     inkscape:document-units="px"+     showgrid="false"+     inkscape:window-width="1024"+     inkscape:window-height="566"+     inkscape:window-x="0"+     inkscape:window-y="12"+     inkscape:window-maximized="0" />+  <metadata+     id="metadata3139">+    <rdf:RDF>+      <cc:Work+         rdf:about="">+        <dc:format>image/svg+xml</dc:format>+        <dc:type+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />+        <dc:title></dc:title>+      </cc:Work>+    </rdf:RDF>+  </metadata>+  <g+     id="layer1"+     inkscape:label="Layer 1"+     inkscape:groupmode="layer">+    <g+       id="g4187"+       transform="matrix(2.0184211,0,0,1.9796558,-320.30102,-235.1316)">+      <path+         sodipodi:nodetypes="cccccccccccccccccccccccccssscssssssssscssssssssssscccssssscccssssssssssssssssssscssssssssssscsssssssccscsssssssssscc"+         inkscape:connector-curvature="0"+         id="path3050"+         d="m 306.53525,253.83733 0,-8.5 -13,0 -13,0 0,-7 0,-7 13,0 13,0 0,-9 0,-9 8,0 8,0 0,9 0,9 13.5,0 13.5,0 0,6.97097 0,6.97098 -13.25,0.27902 -13.25,0.27903 -0.29044,8.25 -0.29044,8.25 -7.95956,0 -7.95956,0 z m 47.61806,-15.65972 c -0.74279,-3.71392 -0.94449,-3.42973 3.03949,-4.28261 2.93725,-0.62881 3.20635,-0.45381 3.8569,2.5081 0.76528,3.48431 -0.41943,4.89211 -4.13945,4.91892 -1.59,0.0114 -2.2841,-0.78019 -2.75694,-3.14441 z m -84.47495,0.26933 c -0.94509,-0.59884 -1.14465,-1.8261 -0.65756,-4.04384 0.65055,-2.96191 0.91965,-3.13691 3.8569,-2.5081 3.98398,0.85288 3.78228,0.56869 3.03949,4.28261 -0.65225,3.26128 -3.20683,4.19049 -6.23883,2.26933 z m 100.10308,-3.6591 c -0.97397,-3.17349 -0.87771,-3.38331 2.01471,-4.39162 1.67065,-0.58239 3.15137,-1.05889 3.2905,-1.05889 0.4817,0 2.45604,6.32589 2.08892,6.69301 -0.20278,0.20279 -1.71928,0.75604 -3.36999,1.22946 -2.80739,0.80515 -3.06738,0.64545 -4.02414,-2.47196 z m -113.99619,0.35127 c -1.7875,-0.47243 -3.25,-1.00395 -3.25,-1.18115 0,-0.1772 0.49915,-1.75406 1.10923,-3.50413 0.91204,-2.61627 1.48981,-3.06573 3.25,-2.52826 4.14258,1.26494 4.43043,1.70725 3.24882,4.99213 -1.03407,2.8747 -1.32505,3.02302 -4.35805,2.22141 z m 129.06865,-5.76854 c -1.11873,-2.96385 -1.11262,-2.97064 6.23124,-6.93187 11.96671,-6.45476 21.33423,-14.04033 29.99155,-24.28638 l 3.95856,-4.685 2.84471,2.29809 2.84471,2.29809 -9.25283,9.67863 c -8.79487,9.19959 -19.77532,17.52628 -29.64675,22.48171 -5.4019,2.71174 -5.63638,2.68304 -6.97119,-0.85327 z m -150.51915,-3.39396 c -11.32927,-6.45626 -16.6312,-10.65046 -26.27844,-20.78805 l -8.69524,-9.13721 2.83709,-2.29202 2.83709,-2.29201 3.95856,4.685 c 8.65732,10.24605 18.02484,17.83162 29.99155,24.28638 7.34386,3.96123 7.34997,3.96802 6.23124,6.93187 -0.6159,1.63172 -1.59457,2.96676 -2.1748,2.96676 -0.58024,0 -4.49841,-1.96233 -8.70705,-4.36072 z m 197.47834,-38.29522 c -2.09037,-1.45905 -2.13303,-1.72341 -0.71926,-4.45733 1.4686,-2.83997 1.57066,-2.87126 4.47216,-1.37083 3.40528,1.76094 3.33869,1.57918 1.80874,4.93705 -1.32493,2.9079 -2.42066,3.08347 -5.56164,0.89111 z m -239.11733,-2.89111 c -1.52994,-3.35787 -1.59653,-3.17611 1.80875,-4.93705 2.90195,-1.50066 3.00339,-1.46947 4.47476,1.37584 1.43273,2.7706 1.38758,2.98858 -0.93408,4.50979 -3.28831,2.15458 -3.99241,2.02973 -5.34943,-0.94858 z m 246.64289,-10.99695 c -2.45185,-1.33105 -2.60181,-1.73585 -1.65218,-4.45996 0.57444,-1.64782 1.15826,-2.99604 1.29738,-2.99604 0.60971,0 6.5514,2.22072 6.5514,2.4486 0,1.19224 -2.34002,6.54254 -2.84783,6.51136 -0.35869,-0.022 -1.86564,-0.6988 -3.34877,-1.50396 z m -253.70558,-3.60522 c -0.6038,-1.73208 -1.09782,-3.26306 -1.09782,-3.40218 0,-0.22788 5.94169,-2.4486 6.5514,-2.4486 0.13912,0 0.72372,1.35046 1.29912,3.00103 0.96336,2.76352 0.81674,3.11967 -1.85252,4.5 -3.77382,1.95152 -3.6274,2.00083 -4.90018,-1.65025 z M 444.28525,158.648 c -2.1876,-0.57167 -2.18224,-0.77619 0.25,-9.55323 2.47969,-8.94824 2.50293,-8.57624 -0.5,-8.00219 -1.84865,0.35339 -2.5,0.0485 -2.5,-1.17006 0,-0.90638 0.57475,-1.86851 1.27722,-2.13807 0.70247,-0.26957 2.3837,-2.28045 3.73607,-4.46862 2.0259,-3.27798 3.01446,-3.9785 5.61437,-3.9785 2.51679,0 3.28029,0.49712 3.77191,2.4559 0.33902,1.35074 1.12185,3.71324 1.73962,5.25 2.47807,6.16438 1.30071,9.90716 -2.13766,6.79549 -2.06349,-1.86744 -1.83495,-2.35222 -5.06708,10.74861 -1.18002,4.78301 -1.81783,5.20179 -6.18445,4.06067 z m -265.87191,-10.79564 -2.39931,-9.67948 -2.79205,2.19623 c -1.53563,1.20792 -2.95962,2.02866 -3.16443,1.82385 -0.20481,-0.2048 0.45171,-2.3936 1.45893,-4.864 1.00721,-2.4704 2.08435,-5.27913 2.39365,-6.24163 0.38632,-1.2022 1.60129,-1.75 3.88133,-1.75 2.63951,0 4.2837,0.97945 8.03138,4.78435 2.59183,2.63139 4.71241,5.55639 4.71241,6.5 0,2.44192 -1.09405,2.12956 -3.6228,-1.03435 -1.20886,-1.5125 -2.53285,-2.41791 -2.9422,-2.01203 -0.40936,0.40589 0.27444,4.59426 1.51954,9.30748 1.24511,4.71323 2.06938,8.76396 1.83173,9.00161 -0.23766,0.23766 -1.79938,0.70556 -3.47049,1.03978 l -3.03838,0.60768 z"+         style="fill:#40bf4c;fill-opacity:1" />+      <path+         sodipodi:nodetypes="ccccccccc"+         style="fill:#d8372c;fill-opacity:1"+         d="m 280.84173,275.15053 0,-7.5 34.5,0 34.5,0 0,7.5 0,7.5 -34.5,0 -34.5,0 z"+         id="path4113"+         inkscape:connector-curvature="0" />+      <path+         sodipodi:nodetypes="sssssscssssssscccccccsssssss"+         style="fill:#666666;fill-opacity:1;fill-rule:nonzero"+         d="m 305.37638,349.62884 c -7.82337,-2.34524 -9.93249,-3.49941 -14.92004,-8.16468 -6.87887,-6.43437 -9.31806,-12.59298 -9.31806,-23.52679 0,-9.89596 2.18037,-16.19728 7.53932,-21.78886 3.82241,-3.98833 9.65386,-7.16237 13.15894,-7.16237 2.48831,0 2.53984,0.14842 2.53984,7.31479 l 0,7.31479 -3.45481,1.64748 c -4.81886,2.29795 -6.86084,6.68232 -6.35692,13.64901 0.80898,11.18406 7.23177,15.57393 22.7861,15.57393 7.49151,0 10.17602,-0.39397 12.57134,-1.84493 6.58103,-3.98644 9.88655,-12.78524 7.50927,-19.98849 -1.34692,-4.08119 -7.17683,-9.66658 -10.08978,-9.66658 -1.76771,0 -1.9652,0.70826 -1.9652,7.04772 l 0,7.04771 -6.25,-0.29771 -6.25,-0.29772 0,-14 0,-14 18.5,0 18.5,0 0.30226,5.25 c 0.259,4.49869 0.0444,5.25219 -1.5,5.26531 -4.31224,0.0366 -4.5766,1.53706 -1.13167,6.42294 3.21746,4.56328 3.32941,5.04721 3.32941,14.3919 0,8.31506 -0.34655,10.34833 -2.47354,14.51253 -5.22325,10.22604 -15.21053,15.75616 -29.43932,16.30103 -5.72334,0.21916 -10.75291,-0.15138 -13.58714,-1.00101 z"+         id="path4115"+         inkscape:connector-curvature="0" />+    </g>+  </g>+</svg>
+ doc/news/version_3.20120825.mdwn view
@@ -0,0 +1,6 @@+git-annex 3.20120825 released with [[!toggle text="these changes"]]+[[!toggleable text="""+   * S3: Add fileprefix setting.+   * Pass --use-agent to gpg when in no tty mode. Thanks, Eskild Hustvedt.+   * Bugfix: Fix fsck in SHA*E backends, when the key contains composite+     extensions, as added in 3.20120721."""]]
doc/special_remotes/S3.mdwn view
@@ -36,5 +36,11 @@   so by default, a bucket name is chosen based on the remote name   and UUID. This can be specified to pick a bucket name. +* `fileprefix` - By default, git-annex places files in a tree rooted at the+  top of the S3 bucket. When this is set, it's prefixed to the filenames+  used. For example, you could set it to "foo/" in one special remote,+  and to "bar/" in another special remote, and both special remotes could+  then use the same bucket.+ * `x-amz-*` are passed through as http headers when storing keys   in S3.
+ doc/special_remotes/S3/comment_4_38c0b062997fde1ad28facc05d973e83._comment view
@@ -0,0 +1,12 @@+[[!comment format=mdwn+ username="https://www.google.com/accounts/o8/id?id=AItOawmX5gPNK35Dub-HzR0Yb3KXllbqc0rYRYs"+ nickname="Eduardo"+ subject="bucket/folder s3 remotes"+ date="2012-08-09T10:52:07Z"+ content="""+it'd be really nice being able to configure a S3 remote of the form `<bucket>/<folder>` (not really a folder, of course, just the usual prefix trick used to simulate folders at S3). The remote = bucket architecture is not scalable at all, in terms of number of repositories.++how hard would it be to support this?++thanks, this is the only thing that's holding us back from using git-annex, nice tool!+"""]]
+ doc/special_remotes/S3/comment_5_409bc2b56382417cf26bb222fb783ba7._comment view
@@ -0,0 +1,8 @@+[[!comment format=mdwn+ username="http://joeyh.name/"+ subject="comment 5"+ date="2012-08-09T18:01:06Z"+ content="""+I guess this could be useful if you have a *lot* of buckets already in use at S3, or if you want to be able to have a lot of distinct S3 special remotes. Implemented the `fileprefix` setting. Note that I have not tested it, beyond checking it builds, since I let my S3 account expire. Your testing would be appreciated.++"""]]
+ doc/special_remotes/S3/comment_6_78da9e233882ec0908962882ea8c4056._comment view
@@ -0,0 +1,10 @@+[[!comment format=mdwn+ username="https://www.google.com/accounts/o8/id?id=AItOawnY9ObrNrQuRp8Xs0XvdtJJssm5cp4NMZA"+ nickname="alan"+ subject="Rackspace Cloud Files support?"+ date="2012-08-23T21:00:11Z"+ content="""+Any chance I could bribe you to setup Rackspace Cloud Files support?  We are using them and would hate to have a S3 bucket only for this.++https://github.com/rackspace/python-cloudfiles+"""]]
doc/tips/using_gitolite_with_git-annex.mdwn view
@@ -3,6 +3,8 @@ `git annex copy` files to a gitolite repository, and `git annex get` files from it. +Warning : The method described here works with gitolite version g2, avaible in the g2 branch on github. There is an experimental support for g3 in the git-annex branch, if you tested it please add some feedback.+ A nice feature of using gitolite with git-annex is that users can be given read-only access to a repository, and this allows them to `git annex get` file contents, but not change anything.@@ -30,13 +32,11 @@ mkdir -p /usr/local/lib/gitolite/adc/ua </pre> -Install the git-annex-shell ADC into the "ua" subdirectory and make it-executable.+Install the git-annex-shell ADC into the "ua" subdirectory from the gitolie repository.  <pre>    cd /usr/local/lib/gitolite/adc/ua/-wget https://raw.github.com/sitaramc/gitolite/pu/contrib/adc/git-annex-shell-chmod +x git-annex-shell+cp gitolite/contrib/adc/git-annex-shell . </pre>  Now all gitolite repositories can be used with git-annex just as any
+ doc/todo/windows_support/comment_4_ad06b98b2ddac866ffee334e41fee6a8._comment view
@@ -0,0 +1,8 @@+[[!comment format=mdwn+ username="https://www.google.com/accounts/o8/id?id=AItOawlc1og3PqIGudOMkFNrCCNg66vB7s-jLpc"+ nickname="Paul"+ subject="Re: What about NTFS support?"+ date="2012-08-16T19:30:38Z"+ content="""+I successfully use git-annex on an NTFS formatted external USB drive, so yes, it is possible and works well.+"""]]
git-annex.cabal view
@@ -1,5 +1,5 @@ Name: git-annex-Version: 3.20120807+Version: 3.20120825 Cabal-Version: >= 1.8 License: GPL Maintainer: Joey Hess <joey@kitenet.net>