1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284 |
- <!DOCTYPE html>
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>git-annex</title>
- <meta name="viewport" content="width=device-width, initial-scale=1" />
- <link rel="icon" href="../favicon.ico" type="image/x-icon" />
- <link rel="stylesheet" href="../style.css" type="text/css" />
- <link rel="stylesheet" href="../local.css" type="text/css" />
- <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/ikiwiki.cgi?do=edit&page=git-annex" />
- <link rel="vcs-git" href="ssh://b-git-annex@git-annex.branchable.com/" title="wiki git repository" />
- <link rel="vcs-git" href="git://git-annex.branchable.com/" title="wiki git repository" />
- </head>
- <body>
- <div class="page">
- <div class="pageheader">
- <div class="header">
- <span>
- <span class="parentlinks">
- <a href="../">git-annex</a>/
- </span>
- <span class="title">
- git-annex
- </span>
- </span>
- <form method="get" action="/ikiwiki.cgi" id="searchform">
- <div>
- <input type="text" id="searchbox" name="P" value="" size="16"
- placeholder="search" />
- </div>
- </form>
- </div>
- <div class="actions">
- <ul>
- <li><a href="/ikiwiki.cgi?do=edit&page=git-annex" rel="nofollow">Edit</a></li>
- <li><a href="../recentchanges/">RecentChanges</a></li>
- <li><a rel="nofollow" href="http://source.git-annex.branchable.com/?p=source.git;a=history;f=doc/git-annex.mdwn;hb=HEAD">History</a></li>
- <li><a rel="nofollow" href="/ikiwiki.cgi?do=prefs">Preferences</a></li>
- <li><a href="/ikiwiki.cgi?do=branchable">Branchable</a></li>
- <li><a rel="nofollow" href="/ikiwiki.cgi?do=comment&page=git-annex">Comment</a></li>
- </ul>
- </div>
- </div>
- <div class="sidebar">
- <p><img src="../logo_small.png" width="150" height="142" class="img" /></p>
- <ul>
- <li><a href="../install/">install</a></li>
- <li><a href="../assistant/">assistant</a></li>
- <li><a href="../walkthrough/">walkthrough</a></li>
- <li><a href="../tips/">tips</a></li>
- <li><a href="../bugs/">bugs</a></li>
- <li><a href="../todo/">todo</a></li>
- <li><a href="../forum/">forum</a></li>
- <li><a href="../comments/">comments</a></li>
- <li><a href="../contact/">contact</a></li>
- <li><a href="../thanks/">thanks</a></li>
- </ul>
- </div>
- <div id="pagebody">
- <div id="content" role="main">
- <h1>NAME</h1>
- <p>git-annex - manage files with git, without checking their contents in</p>
- <h1>SYNOPSIS</h1>
- <p>git annex command [params ...]</p>
- <h1>DESCRIPTION</h1>
- <p>git-annex allows managing files with git, without checking the file
- contents into git. While that may seem paradoxical, it is useful when
- dealing with files larger than git can currently easily handle, whether due
- to limitations in memory, checksumming time, or disk space.</p>
- <p>Even without file content tracking, being able to manage files with git,
- move files around and delete files with versioned directory trees, and use
- branches and distributed clones, are all very handy reasons to use git. And
- annexed files can co-exist in the same git repository with regularly
- versioned files, which is convenient for maintaining documents, Makefiles,
- etc that are associated with annexed files but that benefit from full
- revision control.</p>
- <p>When a file is annexed, its content is moved into a key-value store, and
- a symlink is made that points to the content. These symlinks are checked into
- git and versioned like regular files. You can move them around, delete
- them, and so on. Pushing to another git repository will make git-annex
- there aware of the annexed file, and it can be used to retrieve its
- content from the key-value store.</p>
- <h1>EXAMPLES</h1>
- <pre><code># git annex get video/hackity_hack_and_kaxxt.mov
- get video/hackity_hack_and_kaxxt.mov (not available)
- I was unable to access these remotes: server
- Try making some of these repositories available:
- 5863d8c0-d9a9-11df-adb2-af51e6559a49 -- my home file server
- 58d84e8a-d9ae-11df-a1aa-ab9aa8c00826 -- portable USB drive
- ca20064c-dbb5-11df-b2fe-002170d25c55 -- backup SATA drive
- failed
- # sudo mount /media/usb
- # git remote add usbdrive /media/usb
- # git annex get video/hackity_hack_and_kaxxt.mov
- get video/hackity_hack_and_kaxxt.mov (from usbdrive...) ok
- # git annex add iso
- add iso/Debian_5.0.iso ok
- # git annex drop iso/Debian_4.0.iso
- drop iso/Debian_4.0.iso ok
- # git annex move iso --to=usbdrive
- move iso/Debian_5.0.iso (moving to usbdrive...) ok
- </code></pre>
- <h1>COMMONLY USED COMMANDS</h1>
- <ul>
- <li><p><code>help</code></p>
- <p>Display built-in help.</p>
- <p>For help on a specific command, use <code>git annex help command</code></p></li>
- <li><p><code>add [path ...]</code></p>
- <p>Adds files to the annex.</p>
- <p>See <a href="../git-annex-add/">git-annex-add</a>(1) for details.</p></li>
- <li><p><code>get [path ...]</code></p>
- <p>Makes the content of annexed files available in this repository.</p>
- <p>See <a href="../git-annex-get/">git-annex-get</a>(1) for details.</p></li>
- <li><p><code>drop [path ...]</code></p>
- <p>Drops the content of annexed files from this repository.</p>
- <p>See <a href="../git-annex-drop/">git-annex-drop</a>(1) for details.</p></li>
- <li><p><code>move [path ...] [--from=remote|--to=remote]</code></p>
- <p>Moves the content of files from or to another remote.</p>
- <p>See <a href="../git-annex-move/">git-annex-move</a>(1) for details.</p></li>
- <li><p><code>copy [path ...] [--from=remote|--to=remote]</code></p>
- <p>Copies the content of files from or to another remote.</p>
- <p>See <a href="../git-annex-copy/">git-annex-copy</a>(1) for details.</p></li>
- <li><p><code>status [path ...]</code></p>
- <p>Similar to <code>git status --short</code>, displays the status of the files in the
- working tree.</p>
- <p>See <a href="../git-annex-status/">git-annex-status</a>(1) for details.</p></li>
- <li><p><code>unlock [path ...]</code></p>
- <p>Unlock annexed files for modification.</p>
- <p>See <a href="../git-annex-unlock/">git-annex-unlock</a>(1) for details.</p></li>
- <li><p><code>edit [path ...]</code></p>
- <p>This is an alias for the unlock command. May be easier to remember,
- if you think of this as allowing you to edit an annexed file.</p></li>
- <li><p><code>lock [path ...]</code></p>
- <p>Use this to undo an unlock command if you don't want to modify
- the files, or have made modifications you want to discard.</p>
- <p>See <a href="../git-annex-lock/">git-annex-lock</a>(1) for details.</p></li>
- <li><p><code>sync [remote ...]</code></p>
- <p>Synchronize local repository with remotes.</p>
- <p>See <a href="../git-annex-sync/">git-annex-sync</a>(1) for details.</p></li>
- <li><p><code>mirror [path ...] [--to=remote|--from=remote]</code></p>
- <p>Mirror content of files to/from another repository.</p>
- <p>See <a href="../git-annex-mirror/">git-annex-mirror</a>(1) for details.</p></li>
- <li><p><code>addurl [url ...]</code></p>
- <p>Downloads each url to its own file, which is added to the annex.</p>
- <p>See <a href="../git-annex-addurl/">git-annex-addurl</a>(1) for details.</p></li>
- <li><p><code>rmurl file url</code></p>
- <p>Record that the file is no longer available at the url.</p>
- <p>See <a href="../git-annex-rmurl/">git-annex-rmurl</a>(1) for details.</p></li>
- <li><p><code>import --from remote branch[:subdir] | [path ...]</code></p>
- <p>Add a tree of files to the repository.</p>
- <p>See <a href="../git-annex-import/">git-annex-import</a>(1) for details.</p></li>
- <li><p><code>importfeed [url ...]</code></p>
- <p>Imports the contents of podcast feeds into the annex.</p>
- <p>See <a href="../git-annex-importfeed/">git-annex-importfeed</a>(1) for details.</p></li>
- <li><p><code>export treeish --to remote</code></p>
- <p>Export content to a remote.</p>
- <p>See <a href="../git-annex-export/">git-annex-export</a>(1) for details.</p></li>
- <li><p><code>undo [filename|directory] ...</code></p>
- <p>Undo last change to a file or directory.</p>
- <p>See <a href="../git-annex-undo/">git-annex-undo</a>(1) for details.</p></li>
- <li><p><code>multicast</code></p>
- <p>Multicast file distribution.</p>
- <p>See <a href="../git-annex-multicast/">git-annex-multicast</a>(1) for details.</p></li>
- <li><p><code>watch</code></p>
- <p>Watch for changes and autocommit.</p>
- <p>See <a href="../git-annex-watch/">git-annex-watch</a>(1) for details.</p></li>
- <li><p><code>assistant</code></p>
- <p>Automatically sync folders between devices.</p>
- <p>See <a href="../git-annex-assistant/">git-annex-assistant</a>(1) for details.</p></li>
- <li><p><code>webapp</code></p>
- <p>Opens a web app, that allows easy setup of a git-annex repository,
- and control of the git-annex assistant. If the assistant is not
- already running, it will be started.</p>
- <p>See <a href="../git-annex-webapp/">git-annex-webapp</a>(1) for details.</p></li>
- <li><p><code>remotedaemon</code></p>
- <p>Persistant communication with remotes.</p>
- <p>See <a href="../git-annex-remotedaemon/">git-annex-remotedaemon</a>(1) for details.</p></li>
- </ul>
- <h1>REPOSITORY SETUP COMMANDS</h1>
- <ul>
- <li><p><code>init [description]</code></p>
- <p>Until a repository (or one of its remotes) has been initialized,
- git-annex will refuse to operate on it, to avoid accidentally
- using it in a repository that was not intended to have an annex.</p>
- <p>See <a href="../git-annex-init/">git-annex-init</a>(1) for details.</p></li>
- <li><p><code>describe repository description</code></p>
- <p>Changes the description of a repository.</p>
- <p>See <a href="../git-annex-describe/">git-annex-describe</a>(1) for details.</p></li>
- <li><p><code>initremote name type=value [param=value ...]</code></p>
- <p>Creates a new special remote, and adds it to <code>.git/config</code>.</p>
- <p>See <a href="../git-annex-initremote/">git-annex-initremote</a>(1) for details.</p></li>
- <li><p><code>enableremote name [param=value ...]</code></p>
- <p>Enables use of an existing special remote in the current repository.</p>
- <p>See <a href="../git-annex-enableremote/">git-annex-enableremote</a>(1) for details.</p></li>
- <li><p><code>renameremote</code></p>
- <p>Renames a special remote.</p>
- <p>See <a href="../git-annex-renameremote/">git-annex-renameremote</a>(1) for details.</p></li>
- <li><p><code>enable-tor</code></p>
- <p>Sets up tor hidden service.</p>
- <p>See <a href="../git-annex-enable-tor/">git-annex-enable-tor</a>(1) for details.</p></li>
- <li><p><code>numcopies [N]</code></p>
- <p>Configure desired number of copies.</p>
- <p>See <a href="../git-annex-numcopies/">git-annex-numcopies</a>(1) for details.</p></li>
- <li><p><code>mincopies [N]</code></p>
- <p>Configure minimum number of copies.</p>
- <p>See <a href="../git-annex-mincopies/">git-annex-mincopies</a>(1) for details.</p></li>
- <li><p><code>trust [repository ...]</code></p>
- <p>Records that a repository is trusted to not unexpectedly lose
- content. Use with care.</p>
- <p>See <a href="../git-annex-trust/">git-annex-trust</a>(1) for details.</p></li>
- <li><p><code>untrust [repository ...]</code></p>
- <p>Records that a repository is not trusted and could lose content
- at any time.</p>
- <p>See <a href="../git-annex-untrust/">git-annex-untrust</a>(1) for details.</p></li>
- <li><p><code>semitrust [repository ...]</code></p>
- <p>Returns a repository to the default semi trusted state.</p>
- <p>See <a href="../git-annex-semitrust/">git-annex-semitrust</a>(1) for details.</p></li>
- <li><p><code>group repository groupname</code></p>
- <p>Add a repository to a group.</p>
- <p>See <a href="../git-annex-group/">git-annex-group</a>(1) for details.</p></li>
- <li><p><code>ungroup repository groupname</code></p>
- <p>Removes a repository from a group.</p>
- <p>See <a href="../git-annex-ungroup/">git-annex-ungroup</a>(1) for details.</p></li>
- <li><p><code>wanted repository [expression]</code></p>
- <p>Get or set preferred content expression.</p>
- <p>See <a href="../git-annex-wanted/">git-annex-wanted</a>(1) for details.</p></li>
- <li><p><code>groupwanted groupname [expression]</code></p>
- <p>Get or set groupwanted expression.</p>
- <p>See <a href="../git-annex-groupwanted/">git-annex-groupwanted</a>(1) for details.</p></li>
- <li><p><code>required repository [expression]</code></p>
- <p>Get or set required content expression.</p>
- <p>See <a href="../git-annex-required/">git-annex-required</a>(1) for details.</p></li>
- <li><p><code>schedule repository [expression]</code></p>
- <p>Get or set scheduled jobs.</p>
- <p>See <a href="../git-annex-schedule/">git-annex-schedule</a>(1) for details.</p></li>
- <li><p><code>config</code></p>
- <p>Get and set other configuration stored in git-annex branch.</p>
- <p>See <a href="../git-annex-config/">git-annex-config</a>(1) for details.</p></li>
- <li><p><code>vicfg</code></p>
- <p>Opens EDITOR on a temp file containing most of the above configuration
- settings, as well as a few others, and when it exits, stores any changes
- made back to the git-annex branch.</p>
- <p>See <a href="../git-annex-vicfg/">git-annex-vicfg</a>(1) for details.</p></li>
- <li><p><code>adjust</code></p>
- <p>Switches a repository to use an adjusted branch, which can automatically
- unlock all files, etc.</p>
- <p>See <a href="../git-annex-adjust/">git-annex-adjust</a>(1) for details.</p></li>
- <li><p><code>direct</code></p>
- <p>Switches a repository to use direct mode. (deprecated)</p>
- <p>See <a href="../git-annex-direct/">git-annex-direct</a>(1) for details.</p></li>
- <li><p><code>indirect</code></p>
- <p>Switches a repository to use indirect mode. (deprecated)</p>
- <p>See <a href="../git-annex-indirect/">git-annex-indirect</a>(1) for details.</p></li>
- </ul>
- <h1>REPOSITORY MAINTENANCE COMMANDS</h1>
- <ul>
- <li><p><code>fsck [path ...]</code></p>
- <p>Checks the annex consistency, and warns about or fixes any problems found.
- This is a good complement to <code>git fsck</code>.</p>
- <p>See <a href="../git-annex-fsck/">git-annex-fsck</a>(1) for details.</p></li>
- <li><p><code>expire [repository:]time ...</code></p>
- <p>Expires repositories that have not recently performed an activity
- (such as a fsck).</p>
- <p>See <a href="../git-annex-expire/">git-annex-expire</a>(1) for details.</p></li>
- <li><p><code>unused</code></p>
- <p>Checks the annex for data that does not correspond to any files present
- in any tag or branch, and prints a numbered list of the data.</p>
- <p>See <a href="../git-annex-unused/">git-annex-unused</a>(1) for details.</p></li>
- <li><p><code>dropunused [number|range ...]</code></p>
- <p>Drops the data corresponding to the numbers, as listed by the last
- <code>git annex unused</code></p>
- <p>See <a href="../git-annex-dropunused/">git-annex-dropunused</a>(1) for details.</p></li>
- <li><p><code>addunused [number|range ...]</code></p>
- <p>Adds back files for the content corresponding to the numbers or ranges,
- as listed by the last <code>git annex unused</code>.</p>
- <p>See <a href="../git-annex-addunused/">git-annex-addunused</a>(1) for details.</p></li>
- <li><p><code>fix [path ...]</code></p>
- <p>Fixes up symlinks that have become broken to again point to annexed content.</p>
- <p>See <a href="../git-annex-fix/">git-annex-fix</a>(1) for details.</p></li>
- <li><p><code>merge</code></p>
- <p>Automatically merge changes from remotes.</p>
- <p>See <a href="../git-annex-merge/">git-annex-merge</a>(1) for details.</p></li>
- <li><p><code>upgrade</code></p>
- <p>Upgrades the repository.</p>
- <p>See <a href="../git-annex-upgrade/">git-annex-upgrade</a>(1) for details.</p></li>
- <li><p><code>dead [repository ...] [--key key]</code></p>
- <p>Indicates that a repository or a single key has been irretrievably lost.</p>
- <p>See <a href="../git-annex-dead/">git-annex-dead</a>(1) for details.</p></li>
- <li><p><code>forget</code></p>
- <p>Causes the git-annex branch to be rewritten, throwing away historical
- data about past locations of files.</p>
- <p>See <a href="../git-annex-forget/">git-annex-forget</a>(1) for details.</p></li>
- <li><p><code>filter-branch</code></p>
- <p>Produces a filtered version of the git-annex branch.</p>
- <p>See <a href="../git-annex-filter-branch/">git-annex-filter-branch</a>(1) for details.</p></li>
- <li><p><code>repair</code></p>
- <p>This can repair many of the problems with git repositories that <code>git fsck</code>
- detects, but does not itself fix. It's useful if a repository has become
- badly damaged. One way this can happen is if a repository used by git-annex
- is on a removable drive that gets unplugged at the wrong time.</p>
- <p>See <a href="../git-annex-repair/">git-annex-repair</a>(1) for details.</p></li>
- <li><p><code>p2p</code></p>
- <p>Configure peer-2-Peer links between repositories.</p>
- <p>See <a href="../git-annex-p2p/">git-annex-p2p</a>(1) for details.</p></li>
- </ul>
- <h1>QUERY COMMANDS</h1>
- <ul>
- <li><p><code>find [path ...]</code></p>
- <p>Outputs a list of annexed files in the specified path. With no path,
- finds files in the current directory and its subdirectories.</p>
- <p>See <a href="../git-annex-find/">git-annex-find</a>(1) for details.</p></li>
- <li><p><code>whereis [path ...]</code></p>
- <p>Displays information about where the contents of files are located.</p>
- <p>See <a href="../git-annex-whereis/">git-annex-whereis</a>(1) for details.</p></li>
- <li><p><code>list [path ...]</code></p>
- <p>Displays a table of remotes that contain the contents of the specified
- files. This is similar to whereis but a more compact display.</p>
- <p>See <a href="../git-annex-list/">git-annex-list</a>(1) for details.</p></li>
- <li><p><code>whereused</code></p>
- <p>Finds what files use or used a key.</p></li>
- <li><p><code>log [path ...]</code></p>
- <p>Displays the location log for the specified file or files,
- showing each repository they were added to ("+") and removed from ("-").</p>
- <p>See <a href="../git-annex-log/">git-annex-log</a>(1) for details.</p></li>
- <li><p><code>info [directory|file|remote|uuid ...]</code></p>
- <p>Displays statistics and other information for the specified item,
- which can be a directory, or a file, or a remote, or the uuid of a
- repository.</p>
- <p>When no item is specified, displays statistics and information
- for the repository as a whole.</p>
- <p>See <a href="../git-annex-info/">git-annex-info</a>(1) for details.</p></li>
- <li><p><code>version</code></p>
- <p>Shows the version of git-annex, as well as repository version information.</p>
- <p>See <a href="../git-annex-version/">git-annex-version</a>(1) for details.</p></li>
- <li><p><code>map</code></p>
- <p>Generate map of repositories.</p>
- <p>See <a href="../git-annex-map/">git-annex-map</a>(1) for details.</p></li>
- <li><p><code>inprogress</code></p>
- <p>Access files while they're being downloaded.</p>
- <p>See <a href="../git-annex-inprogress/">git-annex-inprogress</a>(1) for details.</p></li>
- </ul>
- <h1>METADATA COMMANDS</h1>
- <ul>
- <li><p><code>metadata [path ...]</code></p>
- <p>The content of an annexed file can have any number of metadata fields
- attached to it to describe it. Each metadata field can in turn
- have any number of values.</p>
- <p>This command can be used to set metadata, or show the currently set
- metadata.</p>
- <p>See <a href="../git-annex-metadata/">git-annex-metadata</a>(1) for details.</p></li>
- <li><p><code>view [tag ...] [field=value ...] [field=glob ...] [!tag ...] [field!=value ...]</code></p>
- <p>Uses metadata to build a view branch of the files in the current branch,
- and checks out the view branch. Only files in the current branch whose
- metadata matches all the specified field values and tags will be
- shown in the view.</p>
- <p>See <a href="../git-annex-view/">git-annex-view</a>(1) for details.</p></li>
- <li><p><code>vpop [N]</code></p>
- <p>Switches from the currently active view back to the previous view.
- Or, from the first view back to original branch.</p>
- <p>See <a href="../git-annex-vpop/">git-annex-vpop</a>(1) for details.</p></li>
- <li><p><code>vfilter [tag ...] [field=value ...] [!tag ...] [field!=value ...]</code></p>
- <p>Filters the current view to only the files that have the
- specified field values and tags.</p>
- <p>See <a href="../git-annex-vfilter/">git-annex-vfilter</a>(1) for details.</p></li>
- <li><p><code>vadd [field=glob ...] [field=value ...] [tag ...]</code></p>
- <p>Changes the current view, adding an additional level of directories
- to categorize the files.</p>
- <p>See <a href="../git-annex-vfilter/">git-annex-vfilter</a>(1) for details.</p></li>
- <li><p><code>vcycle</code></p>
- <p>When a view involves nested subdirectories, this cycles the order.</p>
- <p>See <a href="../git-annex-vcycle/">git-annex-vcycle</a>(1) for details.</p></li>
- </ul>
- <h1>UTILITY COMMANDS</h1>
- <ul>
- <li><p><code>migrate [path ...]</code></p>
- <p>Changes the specified annexed files to use a different key-value backend.</p>
- <p>See <a href="../git-annex-migrate/">git-annex-migrate</a>(1) for details.</p></li>
- <li><p><code>reinject src dest</code></p>
- <p>Moves the src file into the annex as the content of the dest file.
- This can be useful if you have obtained the content of a file from
- elsewhere and want to put it in the local annex.</p>
- <p>See <a href="../git-annex-reinject/">git-annex-reinject</a>(1) for details.</p></li>
- <li><p><code>unannex [path ...]</code></p>
- <p>Use this to undo an accidental <code>git annex add</code> command. It puts the
- file back how it was before the add.</p>
- <p>See <a href="../git-annex-unannex/">git-annex-unannex</a>(1) for details.</p></li>
- <li><p><code>uninit</code></p>
- <p>De-initialize git-annex and clean out repository.</p>
- <p>See <a href="../git-annex-uninit/">git-annex-uninit</a>(1) for details.</p></li>
- <li><p><code>reinit uuid|description</code></p>
- <p>Initialize repository, reusing old UUID.</p>
- <p>See <a href="../git-annex-reinit/">git-annex-reinit</a>(1) for details.</p></li>
- </ul>
- <h1>PLUMBING COMMANDS</h1>
- <ul>
- <li><p><code>pre-commit [path ...]</code></p>
- <p>This is meant to be called from git's pre-commit hook. <code>git annex init</code>
- automatically creates a pre-commit hook using this.</p>
- <p>See <a href="../git-annex-pre-commit/">git-annex-pre-commit</a>(1) for details.</p></li>
- <li><p><code>post-receive</code></p>
- <p>This is meant to be called from git's post-receive hook. <code>git annex init</code>
- automatically creates a post-receive hook using this.</p>
- <p>See <a href="../git-annex-post-receive/">git-annex-post-receive</a>(1) for details.</p></li>
- <li><p><code>lookupkey [file ...]</code></p>
- <p>Looks up key used for file.</p>
- <p>See <a href="../git-annex-lookupkey/">git-annex-lookupkey</a>(1) for details.</p></li>
- <li><p><code>calckey [file ...]</code></p>
- <p>Calculates the key that would be used to refer to a file.</p>
- <p>See <a href="../git-annex-calckey/">git-annex-calckey</a>(1) for details.</p></li>
- <li><p><code>contentlocation [key ..]</code></p>
- <p>Looks up location of annexed content for a key.</p>
- <p>See <a href="../git-annex-contentlocation/">git-annex-contentlocation</a>(1) for details.</p></li>
- <li><p><code>examinekey [key ...]</code></p>
- <p>Print information that can be determined purely by looking at the key.</p>
- <p>See <a href="../git-annex-examinekey/">git-annex-examinekey</a>(1) for details.</p></li>
- <li><p><code>matchexpression</code></p>
- <p>Checks if a preferred content expression matches provided data.</p>
- <p>See <a href="../git-annex-matchexpression/">git-annex-matchexpression</a>(1) for details.</p></li>
- <li><p><code>fromkey [key file]</code></p>
- <p>Manually set up a file in the git repository to link to a specified key.</p>
- <p>See <a href="../git-annex-fromkey/">git-annex-fromkey</a>(1) for details.</p></li>
- <li><p><code>registerurl [key url]</code></p>
- <p>Registers an url for a key.</p>
- <p>See <a href="../git-annex-registerurl/">git-annex-registerurl</a>(1) for details.</p></li>
- <li><p><code>unregisterurl [key url]</code></p>
- <p>Unregisters an url for a key.</p>
- <p>See <a href="../git-annex-unregisterurl/">git-annex-unregisterurl</a>(1) for details.</p></li>
- <li><p><code>setkey key file</code></p>
- <p>Moves a file into the annex as the content of a key.</p>
- <p>See <a href="../git-annex-setkey/">git-annex-setkey</a>(1) for details.</p></li>
- <li><p><code>dropkey [key ...]</code></p>
- <p>Drops annexed content for specified keys.</p>
- <p>See <a href="../git-annex-dropkey/">git-annex-dropkey</a>(1) for details.</p></li>
- <li><p><code>transferkey key [--from=remote|--to=remote]</code></p>
- <p>Transfers a key from or to a remote.</p>
- <p>See <a href="../git-annex-transferkey/">git-annex-transferkey</a>(1) for details.</p></li>
- <li><p><code>transferrer</code></p>
- <p>Used internally by git-annex to transfer content.</p>
- <p>See <a href="../git-annex-transferrer/">git-annex-transferrer</a>(1) for details.</p></li>
- <li><p><code>transferkeys</code></p>
- <p>Used internally by old versions of the assistant.</p>
- <p>See <a href="../git-annex-transferkey/">git-annex-transferkey</a>(1) for details.</p></li>
- <li><p><code>setpresentkey key uuid [1|0]</code></p>
- <p>This plumbing-level command changes git-annex's records about whether
- the specified key's content is present in a remote with the specified uuid.</p>
- <p>See <a href="../git-annex-setpresentkey/">git-annex-setpresentkey</a>(1) for details.</p></li>
- <li><p><code>readpresentkey key uuid</code></p>
- <p>Read records of where key is present.</p>
- <p>See <a href="../git-annex-readpresentkey/">git-annex-readpresentkey</a>(1) for details.</p></li>
- <li><p><code>checkpresentkey key remote</code></p>
- <p>Check if key is present in remote.</p>
- <p>See <a href="../git-annex-checkpresentkey/">git-annex-checkpresentkey</a>(1) for details.</p></li>
- <li><p><code>rekey [file key ...]</code></p>
- <p>Change keys used for files.</p>
- <p>See <a href="../git-annex-rekey/">git-annex-rekey</a>(1) for details.</p></li>
- <li><p><code>resolvemerge</code></p>
- <p>Resolves a conflicted merge, by adding both conflicting versions of the
- file to the tree, using variants of their filename. This is done
- automatically when using <code>git annex sync</code> or <code>git annex merge</code>.</p>
- <p>See <a href="../git-annex-resolvemerge/">git-annex-resolvemerge</a>(1) for details.</p></li>
- <li><p><code>diffdriver</code></p>
- <p>This can be used to make <code>git diff</code> use an external diff driver with
- annexed files.</p>
- <p>See <a href="../git-annex-diffdriver/">git-annex-diffdriver</a>(1) for details.</p></li>
- <li><p><code>smudge</code></p>
- <p>This command lets git-annex be used as a git filter driver, allowing
- annexed files in the git repository to be unlocked at all times, instead
- of being symlinks.</p>
- <p>See <a href="../git-annex-smudge/">git-annex-smudge</a>(1) for details.</p></li>
- <li><p><code>filter-process</code></p>
- <p>An alternative implementation of a git filter driver, that is faster
- in some situations and slower in others than <code>git-annex smudge</code>.</p>
- <p>See <a href="../git-annex-filter-process/">git-annex-filter-process</a>(1) for details.</p></li>
- <li><p><code>findref [ref]</code></p>
- <p>Lists files in a git ref. (deprecated)</p>
- <p>See <a href="../git-annex-findref/">git-annex-findref</a>(1) for details.</p></li>
- <li><p><code>proxy -- git cmd [options]</code></p>
- <p>Bypass direct mode guard. (deprecated)</p>
- <p>See <a href="../git-annex-proxy/">git-annex-proxy</a>(1) for details.</p></li>
- </ul>
- <h1>TESTING COMMANDS</h1>
- <ul>
- <li><p><code>test</code></p>
- <p>This runs git-annex's built-in test suite.</p>
- <p>See <a href="../git-annex-test/">git-annex-test</a>(1) for details.</p></li>
- <li><p><code>testremote remote</code></p>
- <p>This tests a remote by generating some random objects and sending them to
- the remote, then redownloading them, removing them from the remote, etc.</p>
- <p>It's safe to run in an existing repository (the repository contents are
- not altered), although it may perform expensive data transfers.</p>
- <p>See <a href="../git-annex-testremote/">git-annex-testremote</a>(1) for details.</p></li>
- <li><p><code>fuzztest</code></p>
- <p>Generates random changes to files in the current repository,
- for use in testing the assistant.</p>
- <p>See <a href="../git-annex-fuzztest/">git-annex-fuzztest</a>(1) for details.</p></li>
- <li><p><code>benchmark</code></p>
- <p>This runs git-annex's built-in benchmarks, if it was built with
- benchmarking support.</p>
- <p>See <a href="../git-annex-benchmark/">git-annex-benchmark</a>(1) for details.</p></li>
- </ul>
- <h1>ADDON COMMANDS</h1>
- <p>In addition to all the commands listed above, more commands can be added to
- git-annex by dropping commands named like "git-annex-foo" into a directory
- in the PATH.</p>
- <h1>CONFIGURATION</h1>
- <p>Like other git commands, git-annex is configured via <code>.git/config</code>.
- These settings, as well as relevant git config settings, are
- the ones git-annex uses.</p>
- <p>(Some of these settings can also be set, across all clones of the
- repository, using <a href="../git-annex-config/">git-annex-config</a>. See its man page for a list.)</p>
- <ul>
- <li><p><code>annex.uuid</code></p>
- <p>A unique UUID for this repository (automatically set).</p></li>
- <li><p><code>annex.backend</code></p>
- <p>Name of the default key-value backend to use when adding new files
- to the repository.</p>
- <p>This is overridden by annex annex.backend configuration in the
- .gitattributes files, and by the --backend option.</p>
- <p>(This used to be named <code>annex.backends</code>, and that will still be used
- if set.)</p></li>
- <li><p><code>annex.securehashesonly</code></p>
- <p>Set to true to indicate that the repository should only use
- cryptographically secure hashes (SHA2, SHA3) and not insecure
- hashes (MD5, SHA1) for content.</p>
- <p>When this is set, the contents of files using cryptographically
- insecure hashes will not be allowed to be added to the repository.</p>
- <p>Also, <code>git-annex fsck</code> will complain about any files present in
- the repository that use insecure hashes. And,
- <code>git-annex import --no-content</code> will refuse to import files
- from special remotes using insecure hashes.</p>
- <p>To configure the behavior in new clones of the repository,
- this can be set using <a href="../git-annex-config/">git-annex-config</a>.</p></li>
- <li><p><code>annex.maxextensionlength</code></p>
- <p>Maximum length, in bytes, of what is considered a filename extension when
- adding a file to a backend that preserves filename extensions. The
- default length is 4, which allows extensions like "jpeg". The dot before
- the extension is not counted part of its length. At most two extensions
- at the end of a filename will be preserved, e.g. .gz or .tar.gz .</p></li>
- <li><p><code>annex.diskreserve</code></p>
- <p>Amount of disk space to reserve. Disk space is checked when transferring
- content to avoid running out, and additional free space can be reserved
- via this option, to make space for more important content (such as git
- commit logs). Can be specified with any commonly used units, for example,
- "0.5 gb", "500M", or "100 KiloBytes"</p>
- <p>The default reserve is 1 megabyte.</p></li>
- <li><p><code>annex.skipunknown</code></p>
- <p>Set to true to make commands like "git-annex get" silently skip over
- items that are listed in the command line, but are not checked into git.</p>
- <p>Set to false to make it an error for commands like "git-annex get"
- to be asked to operate on files that are not checked into git.
- (This is the default in recent versions of git-annex.)</p>
- <p>Note that, when annex.skipunknown is false, a command like "git-annex get ."
- will fail if no files in the current directory are checked into git,
- but a command like "git-annex get" will not fail, because the current
- directory is not listed, but is implicit. Commands like "git-annex get foo/"
- will fail if no files in the directory are checked into git, but if
- at least one file is, it will ignore other files that are not. This is
- all the same as the behavior of "git-ls files --error-unmatch".</p>
- <p>Also note that git-annex skips files that are checked into git, but are
- not annexed files, this setting does not affect that.</p></li>
- <li><p><code>annex.largefiles</code></p>
- <p>Used to configure which files are large enough to be added to the annex.
- It is an expression that matches the large files, eg
- "<code>include=*.mp3 or largerthan=500kb</code>"
- See <a href="../git-annex-matching-expression/">git-annex-matching-expression</a>(1) for details on the syntax.</p>
- <p>Overrides any annex.largefiles attributes in <code>.gitattributes</code> files.</p>
- <p>To configure a default annex.largefiles for all clones of the repository,
- this can be set in <a href="../git-annex-config/">git-annex-config</a>(1).</p>
- <p>This configures the behavior of both git-annex and git when adding
- files to the repository. By default, <code>git-annex add</code> adds all files
- to the annex (except dotfiles), and <code>git add</code> adds files to git
- (unless they were added to the annex previously).
- When annex.largefiles is configured, both
- <code>git annex add</code> and <code>git add</code> will add matching large files to the
- annex, and the other files to git.</p>
- <p>Other git-annex commands also honor annex.largefiles, including
- <code>git annex import</code>, <code>git annex addurl</code>, <code>git annex importfeed</code>
- and the assistant.</p></li>
- <li><p><code>annex.dotfiles</code></p>
- <p>Normally, dotfiles are assumed to be files like .gitignore,
- whose content should always be part of the git repository, so
- they will not be added to the annex. Setting annex.dotfiles to true
- makes dotfiles be added to the annex the same as any other file.</p>
- <p>To annex only some dotfiles, set this and configure annex.largefiles
- to match the ones you want. For example, to match only dotfiles ending
- in ".big"</p>
- <p> git config annex.largefiles "(include=.<em>.big or include=</em>/.<em>.big) or (exclude=.</em> and exclude=<em>/.</em>)"
- git config annex.dotfiles true</p>
- <p>To configure a default annex.dotfiles for all clones of the repository,
- this can be set in <a href="../git-annex-config/">git-annex-config</a>(1).</p></li>
- <li><p><code>annex.gitaddtoannex</code></p>
- <p>Setting this to false will prevent <code>git add</code> from adding
- files to the annex, despite the annex.largefiles configuration.</p></li>
- <li><p><code>annex.addsmallfiles</code></p>
- <p>Controls whether small files (not matching annex.largefiles)
- should be checked into git by <code>git annex add</code>. Defaults to true;
- set to false to instead make small files be skipped.</p></li>
- <li><p><code>annex.addunlocked</code></p>
- <p>Commands like <code>git-annex add</code> default to adding files to the repository
- in locked form. This can make them add the files in unlocked form,
- the same as if <a href="../git-annex-unlock/">git-annex-unlock</a>(1) were run on the files.</p>
- <p>This can be set to "true" to add everything unlocked, or it can be a more
- complicated expression that matches files by name, size, or content. See
- <a href="../git-annex-matching-expression/">git-annex-matching-expression</a>(1) for details.</p>
- <p>To configure a default annex.addunlocked for all clones of the repository,
- this can be set in <a href="../git-annex-config/">git-annex-config</a>(1).</p>
- <p>(Using <code>git add</code> always adds files in unlocked form and it is not
- affected by this setting.)</p>
- <p>When a repository has core.symlinks set to false, or has an adjusted
- unlocked branch checked out, this setting is ignored, and files are
- always added to the repository in unlocked form.</p></li>
- <li><p><code>annex.numcopies</code></p>
- <p>This is a deprecated setting. You should instead use the
- <code>git annex numcopies</code> command to configure how many copies of files
- are kept across all repositories, or the annex.numcopies .gitattributes
- setting.</p>
- <p>This config setting is only looked at when <code>git annex numcopies</code> has
- never been configured, and when there's no annex.numcopies setting in the
- .gitattributes file.</p></li>
- <li><p><code>annex.genmetadata</code></p>
- <p>Set this to <code>true</code> to make git-annex automatically generate some metadata
- when adding files to the repository.</p>
- <p>In particular, it stores year, month, and day metadata, from the file's
- modification date.</p>
- <p>When importfeed is used, it stores additional metadata from the feed,
- such as the author, title, etc.</p></li>
- <li><p><code>annex.used-refspec</code></p>
- <p>This controls which refs <code>git-annex unused</code> considers to be used.
- See REFSPEC FORMAT in <a href="../git-annex-unused/">git-annex-unused</a>(1) for details.</p></li>
- <li><p><code>annex.jobs</code></p>
- <p>Configure the number of concurrent jobs to run. Default is 1.</p>
- <p>Only git-annex commands that support the --jobs option will
- use this.</p>
- <p>Setting this to "cpus" will run one job per CPU core.</p>
- <p>When the <code>--batch</code> option is used, this configuration is ignored.</p></li>
- <li><p><code>annex.adjustedbranchrefresh</code></p>
- <p>When <a href="../git-annex-adjust/">git-annex-adjust</a>(1) is used to set up an adjusted branch
- that needs to be refreshed after getting or dropping files, this config
- controls how frequently the branch is refreshed.</p>
- <p>Refreshing the branch takes some time, so doing it after every file
- can be too slow. (It also can generate a lot of dangling git objects.)
- The default value is 0 (or false), which does not
- refresh the branch. Setting 1 (or true) will refresh only once,
- after git-annex has made other changes. Setting 2 refreshes after every
- file, 3 after every other file, and so on; setting 100 refreshes after
- every 99 files.</p>
- <p>(If git-annex gets faster in the future, refresh rates will increase
- proportional to the speed improvements.)</p></li>
- <li><p><code>annex.queuesize</code></p>
- <p>git-annex builds a queue of git commands, in order to combine similar
- commands for speed. By default the size of the queue is limited to
- 10240 commands; this can be used to change the size. If you have plenty
- of memory and are working with very large numbers of files, increasing
- the queue size can speed it up.</p></li>
- <li><p><code>annex.bloomcapacity</code></p>
- <p>The <code>git annex unused</code> and <code>git annex sync --content</code> commands use
- a bloom filter to determine what files are present in eg, the work tree.
- The default bloom filter is sized to handle
- up to 500000 files. If your repository is larger than that,
- you should increase this value. Larger values will
- make <code>git-annex unused</code> and <code>git annex sync --content</code> consume more memory;
- run <code>git annex info</code> for memory usage numbers.</p></li>
- <li><p><code>annex.bloomaccuracy</code></p>
- <p>Adjusts the accuracy of the bloom filter used by
- <code>git annex unused</code> and <code>git annex sync --content</code>.
- The default accuracy is 10000000 -- 1 unused file out of 10000000
- will be missed by <code>git annex unused</code>. Increasing the accuracy will make
- <code>git annex unused</code> consume more memory; run <code>git annex info</code>
- for memory usage numbers.</p></li>
- <li><p><code>annex.sshcaching</code></p>
- <p>By default, git-annex caches ssh connections using ssh's
- ControlMaster and ControlPersist settings
- (if built using a new enough ssh). To disable this, set to <code>false</code>.</p></li>
- <li><p><code>annex.adviceNoSshCaching</code></p>
- <p>When git-annex is unable to use ssh connection caching, or has been
- configured not to, and concurrency is enabled, it will warn that
- this might result in multiple ssh processes prompting for passwords
- at the same time. To disable that warning, eg if you have configured ssh
- connection caching yourself, or have ssh agent caching passwords,
- set this to <code>false</code>.</p></li>
- <li><p><code>annex.alwayscommit</code></p>
- <p>By default, git-annex automatically commits data to the git-annex branch
- after each command is run. If you have a series
- of commands that you want to make a single commit, you can
- run the commands with <code>-c annex.alwayscommit=false</code>. You can later
- commit the data by running <code>git annex merge</code> (or by automatic merges)
- or <code>git annex sync</code>.</p></li>
- <li><p><code>annex.commitmessage</code></p>
- <p>When git-annex updates the git-annex branch, it usually makes up
- its own commit message (eg "update"), since users rarely look at or
- care about changes to that branch. If you do care, you can
- specify this setting by running commands with
- <code>-c annex.commitmessage=whatever</code></p>
- <p>This works well in combination with annex.alwayscommit=false,
- to gather up a set of changes and commit them with a message you specify.</p></li>
- <li><p><code>annex.alwayscompact</code></p>
- <p>By default, git-annex compacts data it records in the git-annex branch.
- Setting this to false avoids doing that compaction in some cases, which
- can speed up operations that populate the git-annex branch with a lot
- of data. However, when used with operations that overwrite old values in
- the git-annex branch, that may cause the git-annex branch to use more disk
- space, and so slow down reading data from it.</p>
- <p>An example of a command that can be sped up by using
- <code>-c annex.alwayscompact=false</code> is <code>git-annex registerurl --batch</code>,
- when adding a large number of urls to the same key.</p>
- <p>This option was first supported by git-annex version 10.20220724.
- It is not entirely safe to set this option in a repository that may also
- be used by an older version of git-annex at the same time as a version
- that supports this option.</p></li>
- <li><p><code>annex.allowsign</code></p>
- <p>By default git-annex avoids gpg signing commits that it makes when
- they're not the purpose of a command, but only a side effect.
- That default avoids lots of gpg password prompts when
- commit.gpgSign is set. A command like <code>git annex sync</code> or <code>git annex merge</code>
- will gpg sign its commit, but a command like <code>git annex get</code>,
- that updates the git-annex branch, will not. The assistant also avoids
- signing commits.</p>
- <p>Setting annex.allowsign to true lets all commits be signed, as
- controlled by commit.gpgSign and other git configuration.</p></li>
- <li><p><code>annex.merge-annex-branches</code></p>
- <p>By default, git-annex branches that have been pulled from remotes
- are automatically merged into the local git-annex branch, so that
- git-annex has the most up-to-date possible knowledge.</p>
- <p>To avoid that merging, set this to "false".</p>
- <p>This can be useful particularly when you don't have write permission
- to the repository. While git-annex is mostly able to work in a read-only
- repository with unmerged git-annex branches, some things do not work,
- and when it does work it will be slower due to needing to look at each of
- the unmerged branches.</p></li>
- <li><p><code>annex.private</code></p>
- <p>When this is set to true, no information about the repository will be
- recorded in the git-annex branch.</p>
- <p>For example, to make a repository without any mention of it ever
- appearing in the git-annex branch:</p>
- <p> git init myprivate
- cd myprivaterepo
- git config annex.private true
- git annex init</p></li>
- <li><p><code>annex.hardlink</code></p>
- <p>Set this to <code>true</code> to make file contents be hard linked between the
- repository and its remotes when possible, instead of a more expensive copy.</p>
- <p>Use with caution -- This can invalidate numcopies counting, since
- with hard links, fewer copies of a file can exist. So, it is a good
- idea to mark a repository using this setting as untrusted.</p>
- <p>When a repository is set up using <code>git clone --shared</code>, git-annex init
- will automatically set annex.hardlink and mark the repository as
- untrusted.</p>
- <p>When <code>annex.thin</code> is also set, setting <code>annex.hardlink</code> has no effect.</p></li>
- <li><p><code>annex.thin</code></p>
- <p>Set this to <code>true</code> to make unlocked files be a hard link to their content
- in the annex, rather than a second copy. This can save considerable
- disk space, but when a modification is made to a file, you will lose the
- local (and possibly only) copy of the old version. So, enable with care.</p>
- <p>After setting (or unsetting) this, you should run <code>git annex fix</code> to
- fix up the annexed files in the work tree to be hard links (or copies).</p>
- <p>Note that this has no effect when the filesystem does not support hard links.
- And when multiple files in the work tree have the same content, only
- one of them gets hard linked to the annex.</p></li>
- <li><p><code>annex.supportunlocked</code></p>
- <p>By default git-annex supports unlocked files as well as locked files,
- so this defaults to true. If set to false, git-annex will only support
- locked files. That will avoid doing the work needed to support unlocked
- files.</p>
- <p>Note that setting this to false does not prevent a repository from
- having unlocked files added to it, and in that case the content of the
- files will not be accessible until they are locked.</p>
- <p>After changing this config, you need to re-run <code>git-annex init</code> for it
- to take effect.</p></li>
- <li><p><code>annex.resolvemerge</code></p>
- <p>Set to false to prevent merge conflicts in the checked out branch
- being automatically resolved by the git-annex assitant,
- git-annex sync, git-annex merge,
- and the git-annex post-receive hook.</p>
- <p>To configure the behavior in all clones of the repository,
- this can be set in <a href="../git-annex-config/">git-annex-config</a>(1).</p></li>
- <li><p><code>annex.synccontent</code></p>
- <p>Set to true to make git-annex sync default to syncing annexed content.</p>
- <p>To configure the behavior in all clones of the repository,
- this can be set in <a href="../git-annex-config/">git-annex-config</a>(1).</p></li>
- <li><p><code>annex.synconlyannex</code></p>
- <p>Set to true to make git-annex sync default to only sincing the git-annex
- branch and annexed content.</p>
- <p>To configure the behavior in all clones of the repository,
- this can be set in <a href="../git-annex-config/">git-annex-config</a>(1).</p></li>
- <li><p><code>annex.debug</code></p>
- <p>Set to true to enable debug logging by default.</p></li>
- <li><p><code>annex.debugfilter</code></p>
- <p>Set to configure which debug messages to display (when debug message
- display has been enabled by annex.debug or --debug). The value is one
- or more module names, separated by commas.</p></li>
- <li><p><code>annex.version</code></p>
- <p>The current version of the git-annex repository. This is
- maintained by git-annex and should never be manually changed.</p></li>
- <li><p><code>annex.autoupgraderepository</code></p>
- <p>When an old git-annex repository version is no longer supported,
- git-annex will normally automatically upgrade the repository to
- the new version. It may also sometimes upgrade from an old repository
- version that is still supported but that is not as good as a later
- version.</p>
- <p>If this is set to false, git-annex won't automatically upgrade the
- repository. If the repository version is not supported, git-annex
- will instead exit with an error message. If it is still supported,
- git-annex will continue to work.</p>
- <p>You can run <code>git annex upgrade</code> yourself when you are ready to upgrade the
- repository.</p></li>
- <li><p><code>annex.crippledfilesystem</code></p>
- <p>Set to true if the repository is on a crippled filesystem, such as FAT,
- which does not support symbolic links, or hard links, or unix permissions.
- This is automatically probed by "git annex init".</p></li>
- <li><p><code>annex.pidlock</code></p>
- <p>Normally, git-annex uses fine-grained lock files to allow multiple
- processes to run concurrently without getting in each others' way.
- That works great, unless you are using git-annex on a filesystem that
- does not support POSIX fcntl locks. This is sometimes the case when
- using NFS or Lustre filesystems.</p>
- <p>To support such situations, you can set annex.pidlock to true, and it
- will fall back to a single top-level pid file lock.</p>
- <p>Although, often, you'd really be better off fixing your networked
- filesystem configuration to support POSIX locks.. And, some networked
- filesystems are so inconsistent that one node can't reliably tell when
- the other node is holding a pid lock. Caveat emptor.</p></li>
- <li><p><code>annex.pidlocktimeout</code></p>
- <p>git-annex will wait up to this many seconds for the pid lock
- file to go away, and will then abort if it cannot continue. Default: 300</p>
- <p>When using pid lock files, it's possible for a stale lock file to get
- left behind by previous run of git-annex that crashed or was interrupted.
- This is mostly avoided, but can occur especially when using a network
- file system. This timeout prevents git-annex waiting forever in such a
- situation.</p></li>
- <li><p><code>annex.cachecreds</code></p>
- <p>When "true" (the default), git-annex will cache credentials used to
- access special remotes in files in .git/annex/creds/
- that only you can read. To disable that caching, set to "false",
- and credentials will only be read from the environment, or if
- they have been embedded in encrypted form in the git repository, will
- be extracted and decrypted each time git-annex needs to access the
- remote.</p></li>
- <li><p><code>annex.secure-erase-command</code></p>
- <p>This can be set to a command that should be run whenever git-annex
- removes the content of a file from the repository.</p>
- <p>In the command line, %file is replaced with the file that should be
- erased.</p>
- <p>For example, to use the wipe command, set it to <code>wipe -f %file</code>.</p></li>
- <li><p><code>annex.freezecontent-command</code>, <code>annex.thawcontent-command</code></p>
- <p>Usually the write permission bits are unset to protect annexed objects
- from being modified or deleted. The freezecontent-command is run after
- git-annex has removed (or attempted to remove) the write bit, and can
- be used to prevent writing in some other way.
- The thawcontent-command should undo its effect, and is run before
- git-annex restores the write bit.</p>
- <p>In the command line, %path is replaced with the file or directory to
- operate on.</p></li>
- <li><p><code>annex.tune.objecthash1</code>, <code>annex.tune.objecthashlower</code>, <code>annex.tune.branchhash1</code></p>
- <p>These can be passed to <code>git annex init</code> to tune the repository.
- They cannot be safely changed in a running repository and should never be
- set in global git configuration.
- For details, see <a href="https://git-annex.branchable.com/tuning/">https://git-annex.branchable.com/tuning/</a>.</p></li>
- </ul>
- <h1>CONFIGURATION OF REMOTES</h1>
- <p>Remotes are configured using these settings in <code>.git/config</code>.</p>
- <ul>
- <li><p><code>remote.<name>.annex-cost</code></p>
- <p>When determining which repository to
- transfer annexed files from or to, ones with lower costs are preferred.
- The default cost is 100 for local repositories, and 200 for remote
- repositories.</p></li>
- <li><p><code>remote.<name>.annex-cost-command</code></p>
- <p>If set, the command is run, and the number it outputs is used as the cost.
- This allows varying the cost based on e.g., the current network.</p></li>
- <li><p><code>remote.<name>.annex-start-command</code></p>
- <p>A command to run when git-annex begins to use the remote. This can
- be used to, for example, mount the directory containing the remote.</p>
- <p>The command may be run repeatedly when multiple git-annex processes
- are running concurrently.</p></li>
- <li><p><code>remote.<name>.annex-stop-command</code></p>
- <p>A command to run when git-annex is done using the remote.</p>
- <p>The command will only be run once <em>all</em> running git-annex processes
- are finished using the remote.</p></li>
- <li><p><code>remote.<name>.annex-shell</code></p>
- <p>Specify an alternative git-annex-shell executable on the remote
- instead of looking for "git-annex-shell" on the PATH.</p>
- <p>This is useful if the git-annex-shell program is outside the PATH
- or has a non-standard name.</p></li>
- <li><p><code>remote.<name>.annex-ignore</code></p>
- <p>If set to <code>true</code>, prevents git-annex
- from storing file contents on this remote by default.
- (You can still request it be used by the <code>--from</code> and <code>--to</code> options.)</p>
- <p>This is, for example, useful if the remote is located somewhere
- without git-annex-shell. (For example, if it's on GitHub).
- Or, it could be used if the network connection between two
- repositories is too slow to be used normally.</p>
- <p>This does not prevent git-annex sync (or the git-annex assistant) from
- syncing the git repository to the remote.</p></li>
- <li><p><code>remote.<name>.annex-ignore-command</code></p>
- <p>If set, the command is run, and if it exits nonzero, that's the same
- as setting annex-ignore to true. This allows controlling behavior based
- on e.g., the current network.</p></li>
- <li><p><code>remote.<name>.annex-sync</code></p>
- <p>If set to <code>false</code>, prevents git-annex sync (and the git-annex assistant)
- from syncing with this remote by default. However, <code>git annex sync <name></code>
- can still be used to sync with the remote.</p></li>
- <li><p><code>remote.<name>.annex-sync-command</code></p>
- <p>If set, the command is run, and if it exits nonzero, that's the same
- as setting annex-sync to false. This allows controlling behavior based
- on e.g., the current network.</p></li>
- <li><p><code>remote.<name>.annex-pull</code></p>
- <p>If set to <code>false</code>, prevents git-annex sync (and the git-annex assistant
- etc) from ever pulling (or fetching) from the remote.</p></li>
- <li><p><code>remote.<name>.annex-push</code></p>
- <p>If set to <code>false</code>, prevents git-annex sync (and the git-annex assistant
- etc) from ever pushing to the remote.</p></li>
- <li><p><code>remote.<name>.annex-readonly</code></p>
- <p>If set to <code>true</code>, prevents git-annex from making changes to a remote.
- This both prevents git-annex sync from pushing changes, and prevents
- storing or removing files from read-only remote.</p></li>
- <li><p><code>remote.<name>.annex-verify</code>, <code>annex.verify</code></p>
- <p>By default, git-annex will verify the checksums of objects downloaded
- from remotes. If you trust a remote and don't want the overhead
- of these checksums, you can set this to <code>false</code>.</p>
- <p>Note that even when this is set to <code>false</code>, git-annex does verification
- in some edge cases, where it's likely the case than an
- object was downloaded incorrectly, or when needed for security.</p></li>
- <li><p><code>remote.<name>.annex-tracking-branch</code></p>
- <p>This is for use with special remotes that support exports and imports.</p>
- <p>When set to eg, "master", this tells git-annex that you want the
- special remote to track that branch.</p>
- <p>When set to eg, "master:subdir", the special remote tracks only
- the subdirectory of that branch.</p>
- <p><code>git-annex sync --content</code> will import changes from the remote and
- merge them into the annex-tracking-branch. They also export changes
- made to the branch to the remote.</p></li>
- <li><p><code>remote.<name>.annex-export-tracking</code></p>
- <p>Deprecated name for <code>remote.<name>.annex-tracking-branch</code>. Will still be used
- if it's configured and <code>remote.<name>.annex-tracking-branch</code> is not.</p></li>
- <li><p><code>remote.<name>.annexUrl</code></p>
- <p>Can be used to specify a different url than the regular <code>remote.<name>.url</code>
- for git-annex to use when talking with the remote. Similar to the <code>pushUrl</code>
- used by git-push.</p></li>
- <li><p><code>remote.<name>.annex-uuid</code></p>
- <p>git-annex caches UUIDs of remote repositories here.</p></li>
- <li><p><code>remote.<name>.annex-config-uuid</code></p>
- <p>Used for some special remotes, points to a different special remote
- configuration to use.</p></li>
- <li><p><code>remote.<name>.annex-retry</code>, <code>annex.retry</code></p>
- <p>Number of times a transfer that fails can be retried. (default 0)</p></li>
- <li><p><code>remote.<name>.annex-forward-retry</code>, <code>annex.forward-retry</code></p>
- <p>If a transfer made some forward progress before failing,
- this allows it to be retried even when <code>annex.retry</code> does not.
- The value is the maximum number of times to do that. (default 5)</p>
- <p>When both <code>annex.retry</code> and this are set, the maximum number of
- retries is the larger of the two.</p></li>
- <li><p><code>remote.<name>.annex-retry-delay</code>, <code>annex.retry-delay</code></p>
- <p>Number of seconds to delay before the first retry of a transfer.
- When making multiple retries of the same transfer, the delay
- doubles after each retry. (default 1)</p></li>
- <li><p><code>remote.<name>.annex-bwlimit</code>, <code>annex.bwlimit</code></p>
- <p>This can be used to limit how much bandwidth is used for a transfer
- from or to a remote.</p>
- <p>For example, to limit transfers to 1 mebibyte per second:
- <code>git config annex.bwlimit "1MiB"</code></p>
- <p>This will work with many remotes, including git remotes, but not
- for remotes where the transfer is run by a separate program than
- git-annex.</p></li>
- <li><p><code>remote.<name>.annex-stalldetecton</code>, <code>annex.stalldetection</code></p>
- <p>Configuring this lets stalled or too-slow transfers be detected, and
- dealt with, so rather than getting stuck, git-annex will cancel the
- stalled operation. The transfer will be considered to have failed, so
- settings like annex.retry will control what it does next.</p>
- <p>By default, git-annex detects transfers that have probably stalled,
- and suggests configuring this. If it is incorrectly detecting
- stalls, setting this to "false" will avoid that.</p>
- <p>Set to "true" to enable automatic stall detection. If a remote does not
- update its progress consistently, no automatic stall detection will be
- done. And it may take a while for git-annex to decide a remote is really
- stalled when using automatic stall detection, since it needs to be
- conservative about what looks like a stall.</p>
- <p>For more fine control over what constitutes a stall, set to a value in
- the form "$amount/$timeperiod" to specify how much data git-annex should
- expect to see flowing, minimum, over a given period of time.</p>
- <p>For example, to detect outright stalls where no data has been transferred
- after 30 seconds: <code>git config annex.stalldetection "1KB/30s"</code></p>
- <p>Or, if you have a remote on a USB drive that is normally capable of
- several megabytes per second, but has bad sectors where it gets
- stuck for a long time, you could use:
- <code>git config remote.usbdrive.annex-stalldetection "1MB/1m"</code></p>
- <p>This is not enabled by default, because it can make git-annex use
- more resources. To be able to cancel stalls, git-annex has to run
- transfers in separate processes (one per concurrent job). So it
- may need to open more connections to a remote than usual, or
- the communication with those processes may make it a bit slower.</p></li>
- <li><p><code>remote.<name>.annex-checkuuid</code></p>
- <p>This only affects remotes that have their url pointing to a directory on
- the same system. git-annex normally checks the uuid of such
- remotes each time it's run, which lets it transparently deal with
- different drives being mounted to the location at different times.</p>
- <p>Setting annex-checkuuid to false will prevent it from checking the uuid
- at startup (although the uuid is still verified before making any
- changes to the remote repository). This may be useful to set to prevent
- unncessary spin-up or automounting of a drive.</p></li>
- <li><p><code>remote.<name>.annex-trustlevel</code></p>
- <p>Configures a local trust level for the remote. This overrides the value
- configured by the trust and untrust commands. The value can be any of
- "trusted", "semitrusted" or "untrusted".</p></li>
- <li><p><code>remote.<name>.annex-availability</code></p>
- <p>Can be used to tell git-annex whether a remote is LocallyAvailable
- or GloballyAvailable. Normally, git-annex determines this automatically.</p></li>
- <li><p><code>remote.<name>.annex-speculate-present</code></p>
- <p>Set to "true" to make git-annex speculate that this remote may contain the
- content of any file, even though its normal location tracking does not
- indicate that it does. This will cause git-annex to try to get all file
- contents from the remote. Can be useful in setting up a caching remote.</p></li>
- <li><p><code>remote.<name>.annex-private</code></p>
- <p>When this is set to true, no information about the remote will be
- recorded in the git-annex branch. This is mostly useful for special
- remotes, and is set when using <a href="../git-annex-initremote/">git-annex-initremote</a>(1) with the
- <code>--private</code> option.</p></li>
- <li><p><code>remote.<name>.annex-bare</code></p>
- <p>Can be used to tell git-annex if a remote is a bare repository
- or not. Normally, git-annex determines this automatically.</p></li>
- <li><p><code>remote.<name>.annex-ssh-options</code></p>
- <p>Options to use when using ssh to talk to this remote.</p></li>
- <li><p><code>remote.<name>.annex-rsync-options</code></p>
- <p>Options to use when using rsync
- to or from this remote. For example, to force IPv6, and limit
- the bandwidth to 100Kbyte/s, set it to <code>-6 --bwlimit 100</code></p>
- <p>Note that git-annex-shell has a whitelist of allowed rsync options,
- and others will not be be passed to the remote rsync. So using some
- options may break the communication between the local and remote rsyncs.</p></li>
- <li><p><code>remote.<name>.annex-rsync-upload-options</code></p>
- <p>Options to use when using rsync to upload a file to a remote.</p>
- <p>These options are passed after other applicable rsync options,
- so can be used to override them. For example, to limit upload bandwidth
- to 10Kbyte/s, set <code>--bwlimit 10</code>.</p></li>
- <li><p><code>remote.<name>.annex-rsync-download-options</code></p>
- <p>Options to use when using rsync to download a file from a remote.</p>
- <p>These options are passed after other applicable rsync options,
- so can be used to override them.</p></li>
- <li><p><code>remote.<name>.annex-rsync-transport</code></p>
- <p>The remote shell to use to connect to the rsync remote. Possible
- values are <code>ssh</code> (the default) and <code>rsh</code>, together with their
- arguments, for instance <code>ssh -p 2222 -c blowfish</code>; Note that the
- remote hostname should not appear there, see rsync(1) for details.
- When the transport used is <code>ssh</code>, connections are automatically cached
- unless <code>annex.sshcaching</code> is unset.</p></li>
- <li><p><code>remote.<name>.annex-bup-split-options</code></p>
- <p>Options to pass to bup split when storing content in this remote.
- For example, to limit the bandwidth to 100Kbyte/s, set it to <code>--bwlimit 100k</code>
- (There is no corresponding option for bup join.)</p></li>
- <li><p><code>remote.<name>.annex-gnupg-options</code></p>
- <p>Options to pass to GnuPG when it's encrypting data. For instance, to
- use the AES cipher with a 256 bits key and disable compression, set it
- to <code>--cipher-algo AES256 --compress-algo none</code>. (These options take
- precedence over the default GnuPG configuration, which is otherwise
- used.)</p></li>
- <li><p><code>remote.<name>.annex-gnupg-decrypt-options</code></p>
- <p>Options to pass to GnuPG when it's decrypting data. (These options take
- precedence over the default GnuPG configuration, which is otherwise
- used.)</p></li>
- <li><p><code>annex.ssh-options</code>, <code>annex.rsync-options</code>,
- <code>annex.rsync-upload-options</code>, <code>annex.rsync-download-options</code>,
- <code>annex.bup-split-options</code>, <code>annex.gnupg-options</code>,
- <code>annex.gnupg-decrypt-options</code></p>
- <p>Default options to use if a remote does not have more specific options
- as described above.</p></li>
- <li><p><code>remote.<name>.annex-rsyncurl</code></p>
- <p>Used by rsync special remotes, this configures
- the location of the rsync repository to use. Normally this is automatically
- set up by <code>git annex initremote</code>, but you can change it if needed.</p></li>
- <li><p><code>remote.<name>.annex-buprepo</code></p>
- <p>Used by bup special remotes, this configures
- the location of the bup repository to use. Normally this is automatically
- set up by <code>git annex initremote</code>, but you can change it if needed.</p></li>
- <li><p><code>remote.<name>.annex-borgrepo</code></p>
- <p>Used by borg special remotes, this configures
- the location of the borg repository to use. Normally this is automatically
- set up by <code>git annex initremote</code>, but you can change it if needed.</p></li>
- <li><p><code>remote.<name>.annex-ddarrepo</code></p>
- <p>Used by ddar special remotes, this configures
- the location of the ddar repository to use. Normally this is automatically
- set up by <code>git annex initremote</code>, but you can change it if needed.</p></li>
- <li><p><code>remote.<name>.annex-directory</code></p>
- <p>Used by directory special remotes, this configures
- the location of the directory where annexed files are stored for this
- remote. Normally this is automatically set up by <code>git annex initremote</code>,
- but you can change it if needed.</p></li>
- <li><p><code>remote.<name>.annex-adb</code></p>
- <p>Used to identify remotes on Android devices accessed via adb.
- Normally this is automatically set up by <code>git annex initremote</code>.</p></li>
- <li><p><code>remote.<name>.annex-androiddirectory</code></p>
- <p>Used by adb special remotes, this is the directory on the Android
- device where files are stored for this remote. Normally this is
- automatically set up by <code>git annex initremote</code>, but you can change
- it if needed.</p></li>
- <li><p><code>remote.<name>.annex-androidserial</code></p>
- <p>Used by adb special remotes, this is the serial number of the Android
- device used by the remote. Normally this is automatically set up by
- <code>git annex initremote</code>, but you can change it if needed, eg when
- upgrading to a new Android device.</p></li>
- <li><p><code>remote.<name>.annex-s3</code></p>
- <p>Used to identify Amazon S3 special remotes.
- Normally this is automatically set up by <code>git annex initremote</code>.</p></li>
- <li><p><code>remote.<name>.annex-glacier</code></p>
- <p>Used to identify Amazon Glacier special remotes.
- Normally this is automatically set up by <code>git annex initremote</code>.</p></li>
- <li><p><code>remote.<name>.annex-webdav</code></p>
- <p>Used to identify webdav special remotes.
- Normally this is automatically set up by <code>git annex initremote</code>.</p></li>
- <li><p><code>remote.<name>.annex-tahoe</code></p>
- <p>Used to identify tahoe special remotes.
- Points to the configuration directory for tahoe.</p></li>
- <li><p><code>remote.<name>.annex-gcrypt</code></p>
- <p>Used to identify gcrypt special remotes.
- Normally this is automatically set up by <code>git annex initremote</code>.</p>
- <p>It is set to "true" if this is a gcrypt remote.
- If the gcrypt remote is accessible over ssh and has git-annex-shell
- available to manage it, it's set to "shell".</p></li>
- <li><p><code>remote.<name>.annex-git-lfs</code></p>
- <p>Used to identify git-lfs special remotes.
- Normally this is automatically set up by <code>git annex initremote</code>.</p>
- <p>It is set to "true" if this is a git-lfs remote.</p></li>
- <li><p><code>remote.<name>.annex-httpalso</code></p>
- <p>Used to identify httpalso special remotes.
- Normally this is automatically set up by <code>git annex initremote</code>.</p></li>
- <li><p><code>remote.<name>.annex-externaltype</code></p>
- <p>Used external special remotes to record the type of the remote.</p>
- <p>Eg, if this is set to "foo", git-annex will run a "git-annex-remote-foo"
- program to communicate with the external special remote.</p>
- <p>If this is set to "readonly", then git-annex will not run any external
- special remote program, but will try to access things stored in the
- remote using http. That only works for some external special remotes,
- so consult the documentation of the one you are using.</p></li>
- <li><p><code>remote.<name>.annex-hooktype</code></p>
- <p>Used by hook special remotes to record the type of the remote.</p></li>
- <li><p><code>annex.web-options</code></p>
- <p>Options to pass to curl when git-annex uses it to download urls
- (rather than the default built-in url downloader).</p>
- <p>For example, to force IPv4 only, set it to "-4".
- Or to make curl use your ~/.netrc file, set it to "--netrc".</p>
- <p>Setting this option makes git-annex use curl, but only
- when annex.security.allowed-ip-addresses is configured in a
- specific way. See its documentation.</p></li>
- <li><p><code>annex.youtube-dl-options</code></p>
- <p>Options to pass to youtube-dl when using it to find the url to download
- for a video.</p>
- <p>Some options may break git-annex's integration with youtube-dl. For
- example, the --output option could cause it to store files somewhere
- git-annex won't find them. Avoid setting here or in the youtube-dl config
- file any options that cause youtube-dl to download more than one file,
- or to store the file anywhere other than the current working directory.</p></li>
- <li><p><code>annex.youtube-dl-command</code></p>
- <p>Command to run for youtube-dl. Default is "youtube-dl".</p></li>
- <li><p><code>annex.aria-torrent-options</code></p>
- <p>Options to pass to aria2c when using it to download a torrent.</p></li>
- <li><p><code>annex.http-headers</code></p>
- <p>HTTP headers to send when downloading from the web. Multiple lines of
- this option can be set, one per header.</p></li>
- <li><p><code>annex.http-headers-command</code></p>
- <p>If set, the command is run and each line of its output is used as a HTTP
- header. This overrides annex.http-headers.</p></li>
- <li><p><code>annex.security.allowed-url-schemes</code></p>
- <p>List of URL schemes that git-annex is allowed to download content from.
- The default is "http https ftp".</p>
- <p>Think very carefully before changing this; there are security
- implications. For example, if it's changed to allow "file" URLs, then
- anyone who can get a commit into your git-annex repository could
- <code>git-annex addurl</code> a pointer to a private file located outside that
- repository, possibly causing it to be copied into your repository
- and transferred on to other remotes, exposing its content.</p>
- <p>Some special remotes support their own domain-specific URL
- schemes; those are not affected by this configuration setting.</p></li>
- <li><p><code>annex.security.allowed-ip-addresses</code></p>
- <p>By default, git-annex only makes connections to public IP addresses;
- it will refuse to use HTTP and other servers on localhost or on a
- private network.</p>
- <p>This setting can override that behavior, allowing access to particular
- IP addresses that would normally be blocked. For example "127.0.0.1 ::1"
- allows access to localhost (both IPV4 and IPV6).
- To allow access to all IP addresses, use "all"</p>
- <p>Think very carefully before changing this; there are security
- implications. Anyone who can get a commit into your git-annex repository
- could <code>git annex addurl</code> an url on a private server, possibly
- causing it to be downloaded into your repository and transferred to
- other remotes, exposing its content.</p>
- <p>Note that, since the interfaces of curl and youtube-dl do not allow
- these IP address restrictions to be enforced, curl and youtube-dl will
- never be used unless annex.security.allowed-ip-addresses=all.</p>
- <p>To allow accessing local or private IP addresses on only specific ports,
- use the syntax "[addr]:port". For example,
- "[127.0.0.1]:80 [127.0.0.1]:443 [::1]:80 [::1]:443" allows
- localhost on the http ports only.</p></li>
- <li><p><code>annex.security.allowed-http-addresses</code></p>
- <p>Old name for annex.security.allowed-ip-addresses.
- If set, this is treated the same as having
- annex.security.allowed-ip-addresses set.</p></li>
- <li><p><code>annex.security.allow-unverified-downloads</code></p>
- <p>For security reasons, git-annex refuses to download content from
- most special remotes when it cannot check a hash to verify
- that the correct content was downloaded. This particularly impacts
- downloading the content of URL or WORM keys, which lack hashes.</p>
- <p>The best way to avoid problems due to this is to migrate files
- away from such keys, before their content reaches a special remote.
- See <a href="../git-annex-migrate/">git-annex-migrate</a>(1).</p>
- <p>When the content is only available from a special remote, you can
- use this configuration to force git-annex to download it.
- But you do so at your own risk, and it's very important you read and
- understand the information below first!</p>
- <p>Downloading unverified content from encrypted special remotes is
- prevented, because the special remote could send some other encrypted
- content than what you expect, causing git-annex to decrypt data that you
- never checked into git-annex, and risking exposing the decrypted
- data to any non-encrypted remotes you send content to.</p>
- <p>Downloading unverified content from (non-encrypted)
- external special remotes is prevented, because they could follow
- http redirects to web servers on localhost or on a private network,
- or in some cases to a file:/// url.</p>
- <p>If you decide to bypass this security check, the best thing to do is
- to only set it temporarily while running the command that gets the file.
- The value to set the config to is "ACKTHPPT".
- For example:</p>
- <p> git -c annex.security.allow-unverified-downloads=ACKTHPPT annex get myfile</p>
- <p>It would be a good idea to check that it downloaded the file you expected,
- too.</p></li>
- <li><p><code>remote.<name>.annex-security-allow-unverified-downloads</code></p>
- <p>Per-remote configuration of annex.security.allow-unverified-downloads.</p></li>
- </ul>
- <h1>CONFIGURATION OF ASSISTANT</h1>
- <ul>
- <li><p><code>annex.delayadd</code></p>
- <p>Makes the watch and assistant commands delay for the specified number of
- seconds before adding a newly created file to the annex. Normally this
- is not needed, because they already wait for all writers of the file
- to close it.</p>
- <p>Note that this only delays adding files created while the daemon is
- running. Changes made when it is not running will be added immediately
- the next time it is started up.</p></li>
- <li><p><code>annex.expireunused</code></p>
- <p>Controls what the assistant does about unused file contents
- that are stored in the repository.</p>
- <p>The default is <code>false</code>, which causes
- all old and unused file contents to be retained, unless the assistant
- is able to move them to some other repository (such as a backup repository).</p>
- <p>Can be set to a time specification, like "7d" or "1m", and then
- file contents that have been known to be unused for a week or a
- month will be deleted.</p></li>
- <li><p><code>annex.fscknudge</code></p>
- <p>When set to false, prevents the webapp from reminding you when using
- repositories that lack consistency checks.</p></li>
- <li><p><code>annex.autoupgrade</code></p>
- <p>When set to ask (the default), the webapp will check for new versions
- and prompt if they should be upgraded to. When set to true, automatically
- upgrades without prompting (on some supported platforms). When set to
- false, disables any upgrade checking.</p>
- <p>Note that upgrade checking is only done when git-annex is installed
- from one of the prebuilt images from its website. This does not
- bypass e.g., a Linux distribution's own upgrade handling code.</p>
- <p>This setting also controls whether to restart the git-annex assistant
- when the git-annex binary is detected to have changed. That is useful
- no matter how you installed git-annex.</p></li>
- <li><p><code>annex.autocommit</code></p>
- <p>Set to false to prevent the git-annex assistant and git-annex sync
- from automatically committing changes to files in the repository.</p>
- <p>To configure the behavior in all clones of the repository,
- this can be set in <a href="../git-annex-config/">git-annex-config</a>(1).</p></li>
- <li><p><code>annex.startupscan</code></p>
- <p>Set to false to prevent the git-annex assistant from scanning the
- repository for new and changed files on startup. This will prevent it
- from noticing changes that were made while it was not running, but can be
- a useful performance tweak for a large repository.</p></li>
- <li><p><code>annex.listen</code></p>
- <p>Configures which address the webapp listens on. The default is localhost.
- Can be either an IP address, or a hostname that resolves to the desired
- address.</p></li>
- </ul>
- <h1>CONFIGURATION VIA .gitattributes</h1>
- <p>The key-value backend used when adding a new file to the annex can be
- configured on a per-file-type basis via <code>.gitattributes</code> files. In the file,
- the <code>annex.backend</code> attribute can be set to the name of the backend to
- use. For example, this here's how to use the WORM backend by default,
- but the SHA256E backend for ogg files:</p>
- <pre><code>* annex.backend=WORM
- *.ogg annex.backend=SHA256E
- </code></pre>
- <p>There is a annex.largefiles attribute, which is used to configure which
- files are large enough to be added to the annex. Since attributes cannot
- contain spaces, it is difficult to use for more complex annex.largefiles
- settings. Setting annex.largefiles in <a href="../git-annex-config/">git-annex-config</a>(1) is an easier
- way to configure it across all clones of the repository.
- See <a href="../git-annex-matching-expression/">git-annex-matching-expression</a>(1) for details on the syntax.</p>
- <p>The numcopies and mincopies settings can also be configured on a
- per-file-type basis via the <code>annex.numcopies</code> and <code>annex.mincopies</code>
- attributes in <code>.gitattributes</code> files. This overrides other settings.
- For example, this makes two copies be needed for wav files and 3 copies
- for flac files:</p>
- <pre><code>*.wav annex.numcopies=2
- *.flac annex.numcopies=3
- </code></pre>
- <p>These settings are honored by git-annex whenever it's operating on a
- matching file. However, when using --all, --unused, or --key to specify
- keys to operate on, git-annex is operating on keys and not files, so will
- not honor the settings from .gitattributes. For this reason, the <code>git annex
- numcopies</code> and <code>git annex mincopies</code> commands are useful to configure a
- global default.</p>
- <p>Also note that when using views, only the toplevel .gitattributes file is
- preserved in the view, so other settings in other files won't have any
- effect.</p>
- <h1>EXIT STATUS</h1>
- <p>git-annex itself will exit 0 on success and 1 on failure, unless
- the <code>--size-limit</code> or <code>--time-limit</code> option is hit, in
- which case it exits 101.</p>
- <p>A few git-annex subcommands have other exit statuses used to indicate
- specific problems, which are documented on their individual man pages.</p>
- <h1>ENVIRONMENT</h1>
- <p>These environment variables are used by git-annex when set:</p>
- <ul>
- <li><p><code>GIT_WORK_TREE</code>, <code>GIT_DIR</code></p>
- <p>Handled the same as they are by git, see git(1)</p></li>
- <li><p><code>GIT_SSH</code>, <code>GIT_SSH_COMMAND</code></p>
- <p>Handled similarly to the same as described in git(1).
- The one difference is that git-annex will sometimes pass an additional
- "-n" parameter to these, as the first parameter, to prevent ssh from
- reading from stdin. Since that can break existing uses of these
- environment variables that don't expect the extra parameter, you will
- need to set <code>GIT_ANNEX_USE_GIT_SSH=1</code> to make git-annex support
- these.</p>
- <p>Note that setting either of these environment variables prevents
- git-annex from automatically enabling ssh connection caching
- (see <code>annex.sshcaching</code>), so it will slow down some operations with
- remotes over ssh. It's up to you to enable ssh connection caching
- if you need it; see ssh's documentation.</p>
- <p>Also, <code>annex.ssh-options</code> and <code>remote.<name>.annex-ssh-options</code>
- won't have any effect when these envionment variables are set.</p>
- <p>Usually it's better to configure any desired options through your
- ~/.ssh/config file, or by setting <code>annex.ssh-options</code>.</p></li>
- <li><p><code>GIT_ANNEX_VECTOR_CLOCK</code></p>
- <p>Normally git-annex timestamps lines in the log files committed to the
- git-annex branch. Setting this environment variable to a number
- will make git-annex use that (or a larger number)
- rather than the current number of seconds since the UNIX epoch.
- Note that decimal seconds are supported.</p>
- <p>This is only provided for advanced users who either have a better way to
- tell which commit is current than the local clock, or who need to avoid
- embedding timestamps for policy reasons.</p></li>
- <li><p>Some special remotes use additional environment variables
- for authentication etc. For example, <code>AWS_ACCESS_KEY_ID</code>
- and <code>GIT_ANNEX_P2P_AUTHTOKEN</code>. See special remote documentation.</p></li>
- </ul>
- <h1>FILES</h1>
- <p>These files are used by git-annex:</p>
- <p><code>.git/annex/objects/</code> in your git repository contains the annexed file
- contents that are currently available. Annexed files in your git
- repository symlink to that content.</p>
- <p><code>.git/annex/</code> in your git repository contains other run-time information
- used by git-annex.</p>
- <p><code>~/.config/git-annex/autostart</code> is a list of git repositories
- to start the git-annex assistant in.</p>
- <p><code>.git/hooks/pre-commit-annex</code> in your git repository will be run whenever
- a commit is made to the HEAD branch, either by git commit, git-annex
- sync, or the git-annex assistant.</p>
- <p><code>.git/hooks/post-update-annex</code> in your git repository will be run
- whenever the git-annex branch is updated. You can make this hook run
- <code>git update-server-info</code> when publishing a git-annex repository by http.</p>
- <h1>SEE ALSO</h1>
- <p>More git-annex documentation is available on its web site,
- <a href="https://git-annex.branchable.com/">https://git-annex.branchable.com/</a></p>
- <p>If git-annex is installed from a package, a copy of its documentation
- should be included, in, for example, <code>/usr/share/doc/git-annex/</code>.</p>
- <h1>AUTHOR</h1>
- <p>Joey Hess <a href="mailto:id@joeyh.name">id@joeyh.name</a></p>
- <p><a href="https://git-annex.branchable.com/">https://git-annex.branchable.com/</a></p>
- <p>Warning: Automatically converted into a man page by mdwn2man. Edit with care.</p>
- </div>
- <div id="comments" role="complementary">
- <div class="addcomment">
- <a rel="nofollow" href="/ikiwiki.cgi?do=comment&page=git-annex">Add a comment</a>
- </div>
- </div>
- </div>
- <div id="footer" class="pagefooter" role="contentinfo">
- <div id="pageinfo">
- <div id="backlinks">
- Links:
- <a href="../devblog/day_266-267__man_page_split/">devblog/day 266-267 man page split</a>
- <a href="../forum/General_questions_and_help/comment_2_972231014d3da4fcd8fb2a77d76e7b77/">forum/General questions and help/comment 2 972231014d3da4fcd8fb2a77d76e7b77</a>
- <a href="../forum/Help_with_git-annex_and_controlmaster/comment_1_2742e65d9faebab80bc5fa0877ef7d29/">forum/Help with git-annex and controlmaster/comment 1 2742e65d9faebab80bc5fa0877ef7d29</a>
- <a href="../forum/Import_existing_files/comment_3_69188f669e6fe5ca1a8c34c3dc3ec201/">forum/Import existing files/comment 3 69188f669e6fe5ca1a8c34c3dc3ec201</a>
- <a href="../forum/Is_it_possible_adding_files_to_git_annex_bypassing___40__some_parts_of__41___the_git_annex_tools/comment_1_5c593876993bef4dfaa052278a3ba5be/">forum/Is it possible adding files to git annex bypassing (some parts of) the git annex tools/comment 1 5c593876993bef4dfaa052278a3ba5be</a>
- <a href="../forum/Is_it_possible_adding_files_to_git_annex_bypassing___40__some_parts_of__41___the_git_annex_tools/comment_4_ba3422afc8ae83bd822616cc1a99a5b9/">forum/Is it possible adding files to git annex bypassing (some parts of) the git annex tools/comment 4 ba3422afc8ae83bd822616cc1a99a5b9</a>
- <a href="../forum/Watch__47__assistant__47__webapp_documentation/comment_1_adb377589dbae7fc91001df235c6b48e/">forum/Watch/assistant/webapp documentation/comment 1 adb377589dbae7fc91001df235c6b48e</a>
- <a href="../forum/share_.git__47__annex__47__objects_across_multiple_repositories_on_one_machine/comment_1_1606849eb13b6069394455297395dc30/">forum/share .git/annex/objects across multiple repositories on one machine/comment 1 1606849eb13b6069394455297395dc30</a>
- <a href="../forum/unannex_alternatives/">forum/unannex alternatives</a>
- <a href="../forum/untitled/comment_1_0176d1d50bd62b113ff690346ba4161b/">forum/untitled/comment 1 0176d1d50bd62b113ff690346ba4161b</a>
- <span class="popup">...
- <span class="balloon">
- <a href="../git-annex-add/">git-annex-add</a>
- <a href="../git-annex-add/comment_3_8517f9634d217f731efd704405d3f2ca/">git-annex-add/comment 3 8517f9634d217f731efd704405d3f2ca</a>
- <a href="../git-annex-addunused/">git-annex-addunused</a>
- <a href="../git-annex-addurl/">git-annex-addurl</a>
- <a href="../git-annex-adjust/">git-annex-adjust</a>
- <a href="../git-annex-assistant/">git-annex-assistant</a>
- <a href="../git-annex-benchmark/">git-annex-benchmark</a>
- <a href="../git-annex-calckey/">git-annex-calckey</a>
- <a href="../git-annex-checkpresentkey/">git-annex-checkpresentkey</a>
- <a href="../git-annex-common-options/">git-annex-common-options</a>
- <a href="../git-annex-config/">git-annex-config</a>
- <a href="../git-annex-contentlocation/">git-annex-contentlocation</a>
- <a href="../git-annex-copy/">git-annex-copy</a>
- <a href="../git-annex-dead/">git-annex-dead</a>
- <a href="../git-annex-describe/">git-annex-describe</a>
- <a href="../git-annex-diffdriver/">git-annex-diffdriver</a>
- <a href="../git-annex-direct/">git-annex-direct</a>
- <a href="../git-annex-drop/">git-annex-drop</a>
- <a href="../git-annex-dropkey/">git-annex-dropkey</a>
- <a href="../git-annex-dropunused/">git-annex-dropunused</a>
- <a href="../git-annex-enable-tor/">git-annex-enable-tor</a>
- <a href="../git-annex-enableremote/">git-annex-enableremote</a>
- <a href="../git-annex-examinekey/">git-annex-examinekey</a>
- <a href="../git-annex-expire/">git-annex-expire</a>
- <a href="../git-annex-export/">git-annex-export</a>
- <a href="../git-annex-filter-branch/">git-annex-filter-branch</a>
- <a href="../git-annex-filter-process/">git-annex-filter-process</a>
- <a href="../git-annex-find/">git-annex-find</a>
- <a href="../git-annex-findref/">git-annex-findref</a>
- <a href="../git-annex-fix/">git-annex-fix</a>
- <a href="../git-annex-forget/">git-annex-forget</a>
- <a href="../git-annex-fromkey/">git-annex-fromkey</a>
- <a href="../git-annex-fsck/">git-annex-fsck</a>
- <a href="../git-annex-fuzztest/">git-annex-fuzztest</a>
- <a href="../git-annex-get/">git-annex-get</a>
- <a href="../git-annex-group/">git-annex-group</a>
- <a href="../git-annex-groupwanted/">git-annex-groupwanted</a>
- <a href="../git-annex-import/">git-annex-import</a>
- <a href="../git-annex-importfeed/">git-annex-importfeed</a>
- <a href="../git-annex-indirect/">git-annex-indirect</a>
- <a href="../git-annex-info/">git-annex-info</a>
- <a href="../git-annex-init/">git-annex-init</a>
- <a href="../git-annex-initremote/">git-annex-initremote</a>
- <a href="../git-annex-inprogress/">git-annex-inprogress</a>
- <a href="../git-annex-list/">git-annex-list</a>
- <a href="../git-annex-lock/">git-annex-lock</a>
- <a href="../git-annex-log/">git-annex-log</a>
- <a href="../git-annex-lookupkey/">git-annex-lookupkey</a>
- <a href="../git-annex-map/">git-annex-map</a>
- <a href="../git-annex-matchexpression/">git-annex-matchexpression</a>
- <a href="../git-annex-matching-expression/">git-annex-matching-expression</a>
- <a href="../git-annex-matching-options/">git-annex-matching-options</a>
- <a href="../git-annex-merge/">git-annex-merge</a>
- <a href="../git-annex-metadata/">git-annex-metadata</a>
- <a href="../git-annex-migrate/">git-annex-migrate</a>
- <a href="../git-annex-mincopies/">git-annex-mincopies</a>
- <a href="../git-annex-mirror/">git-annex-mirror</a>
- <a href="../git-annex-move/">git-annex-move</a>
- <a href="../git-annex-multicast/">git-annex-multicast</a>
- <a href="../git-annex-numcopies/">git-annex-numcopies</a>
- <a href="../git-annex-p2p/">git-annex-p2p</a>
- <a href="../git-annex-post-receive/">git-annex-post-receive</a>
- <a href="../git-annex-pre-commit/">git-annex-pre-commit</a>
- <a href="../git-annex-preferred-content/">git-annex-preferred-content</a>
- <a href="../git-annex-proxy/">git-annex-proxy</a>
- <a href="../git-annex-readpresentkey/">git-annex-readpresentkey</a>
- <a href="../git-annex-registerurl/">git-annex-registerurl</a>
- <a href="../git-annex-reinit/">git-annex-reinit</a>
- <a href="../git-annex-reinject/">git-annex-reinject</a>
- <a href="../git-annex-rekey/">git-annex-rekey</a>
- <a href="../git-annex-remotedaemon/">git-annex-remotedaemon</a>
- <a href="../git-annex-renameremote/">git-annex-renameremote</a>
- <a href="../git-annex-repair/">git-annex-repair</a>
- <a href="../git-annex-required/">git-annex-required</a>
- <a href="../git-annex-resolvemerge/">git-annex-resolvemerge</a>
- <a href="../git-annex-rmurl/">git-annex-rmurl</a>
- <a href="../git-annex-schedule/">git-annex-schedule</a>
- <a href="../git-annex-semitrust/">git-annex-semitrust</a>
- <a href="../git-annex-setkey/">git-annex-setkey</a>
- <a href="../git-annex-setpresentkey/">git-annex-setpresentkey</a>
- <a href="../git-annex-shell/">git-annex-shell</a>
- <a href="../git-annex-smudge/">git-annex-smudge</a>
- <a href="../git-annex-status/">git-annex-status</a>
- <a href="../git-annex-sync/">git-annex-sync</a>
- <a href="../git-annex-test/">git-annex-test</a>
- <a href="../git-annex-testremote/">git-annex-testremote</a>
- <a href="../git-annex-transferkey/">git-annex-transferkey</a>
- <a href="../git-annex-transferkeys/">git-annex-transferkeys</a>
- <a href="../git-annex-transferrer/">git-annex-transferrer</a>
- <a href="../git-annex-trust/">git-annex-trust</a>
- <a href="../git-annex-unannex/">git-annex-unannex</a>
- <a href="../git-annex-undo/">git-annex-undo</a>
- <a href="../git-annex-ungroup/">git-annex-ungroup</a>
- <a href="../git-annex-uninit/">git-annex-uninit</a>
- <a href="../git-annex-unlock/">git-annex-unlock</a>
- <a href="../git-annex-unregisterurl/">git-annex-unregisterurl</a>
- <a href="../git-annex-untrust/">git-annex-untrust</a>
- <a href="../git-annex-unused/">git-annex-unused</a>
- <a href="../git-annex-upgrade/">git-annex-upgrade</a>
- <a href="../git-annex-vadd/">git-annex-vadd</a>
- <a href="../git-annex-vcycle/">git-annex-vcycle</a>
- <a href="../git-annex-version/">git-annex-version</a>
- <a href="../git-annex-vfilter/">git-annex-vfilter</a>
- <a href="../git-annex-vicfg/">git-annex-vicfg</a>
- <a href="../git-annex-view/">git-annex-view</a>
- <a href="../git-annex-vpop/">git-annex-vpop</a>
- <a href="../git-annex-wanted/">git-annex-wanted</a>
- <a href="../git-annex-watch/">git-annex-watch</a>
- <a href="../git-annex-webapp/">git-annex-webapp</a>
- <a href="../git-annex-whereis/">git-annex-whereis</a>
- <a href="../git-annex-whereused/">git-annex-whereused</a>
- <a href="../git-remote-tor-annex/">git-remote-tor-annex</a>
- <a href="../how_it_works/">how it works</a>
- <a href="../links/key_concepts/">links/key concepts</a>
- <a href="../tips/disabling_a_special_remote/">tips/disabling a special remote</a>
- <a href="../tips/downloading_podcasts/">tips/downloading podcasts</a>
- <a href="../tips/semi-synchronized_remotes/">tips/semi-synchronized remotes</a>
- <a href="../tips/using_the_web_as_a_special_remote/">tips/using the web as a special remote</a>
- <a href="../todo/build_a_user_guide/">todo/build a user guide</a>
- <a href="../todo/making_it_easier_to_smudge_dotfiles/comment_7_66e313842f388bad020d212885eeffd0/">todo/making it easier to smudge dotfiles/comment 7 66e313842f388bad020d212885eeffd0</a>
- <a href="../todo/shorten_git-annex_manpage/">todo/shorten git-annex manpage</a>
- <a href="../upgrades/">upgrades</a>
- <a href="../walkthrough/using_ssh_remotes/">walkthrough/using ssh remotes</a>
- <a href="../workflow/">workflow</a>
- </span>
- </span>
- </div>
- <div class="pagedate">
- Last edited <span class="relativedate" title="Mon, 25 Jul 2022 20:23:58 +0000">Mon Jul 25 20:23:58 2022</span>
- <!-- Created <span class="relativedate" title="Sat, 16 Oct 2010 19:23:03 +0000">Sat Oct 16 19:23:03 2010</span> -->
- </div>
- </div>
- <!-- from git-annex -->
- </div>
- </div>
- <script src="../ikiwiki/ikiwiki.js" type="text/javascript" charset="utf-8"></script>
- <script src="../ikiwiki/toggle.js" type="text/javascript" charset="utf-8"></script>
- <script src="../ikiwiki/ikiwiki.js" type="text/javascript" charset="utf-8"></script>
- <script src="../ikiwiki/relativedate.js" type="text/javascript" charset="utf-8"></script></body>
- </html>
|