neulab/tldr huggingface dataset:
If you want to replace many blobs, trees or commits that are part of a string of commits, you may just want to create a replacement string of commits and then only replace the commit at the tip of the target string of commits with the commit at the tip of the replacement string of commits.
Comparing blobs or trees that have been replaced with those that replace them will not work properly. And using git reset --hard to go back to a replaced commit will move the branch to the replacement commit instead of the replaced commit.
There may be other problems when using git rev-list related to pending objects.
git-hash-object(1) git-rebase(1) git-tag(1) git-branch(1) git-commit(1) git-var(1) git(1) git-filter-repo[1]
1. git-filter-repo https://github.com/newren/git-filter-repo
EDQUOTA(8)                   System Manager's Manual                  EDQUOTA(8)
edquota - edit user quotas
edquota [ -p protoname ] [ -u | -g | -P ] [ -rm ] [ -F format-name ] [ -f filesystem ] username | groupname | projectname...
edquota [ -u | -g | -P ] [ -F format-name ] [ -f filesystem ] -t
edquota [ -u | -g | -P ] [ -F format-name ] [ -f filesystem ] -T username | groupname | projectname...
edquota is a quota editor.  One or more users, groups, or projects may be specified on the command line. If a number is given in the place of user/group/project name it is treated as an UID/GID/Project ID. For each user, group, or project a temporary file is created with an ASCII representation of the current disk quotas for that user, group, or project and an editor is then invoked on the file.  The quotas may then be modified, new quotas added, etc.  Setting a quota to zero indicates that no quota should be imposed.
Block usage and limits are reported and interpreted as multiples of kibibyte (1024 bytes) blocks by default. Symbols K, M, G, and T can be appended to numeric value to express kibibytes, mebibytes, gibibytes, and tebibytes.
Inode usage and limits are interpreted literally. Symbols k, m, g, and t can be appended to numeric value to express multiples of 10^3, 10^6, 10^9, and 10^12 inodes.
Users are permitted to exceed their soft limits for a grace period that may be specified per filesystem.  Once the grace period has expired, the soft limit is enforced as a hard limit.
The current usage information in the file is for informational purposes; only the hard and soft limits can be changed.
Upon leaving the editor, edquota reads the temporary file and modifies the binary quota files to reflect the changes made.
The editor invoked is vi(1) unless either the EDITOR or the VISUAL environment variable specifies otherwise.
Only the super-user may edit quotas.
-r, --remote Edit also non-local quota use rpc.rquotad on remote server to set quota.  This option is available only if quota tools were compiled with enabled support for setting quotas over RPC.  The -n option is equivalent, and is maintained for backward compatibility.
-m, --no-mixed-pathnames Currently, pathnames of NFSv4 mountpoints are sent without leading slash in the path.  rpc.rquotad uses this to recognize NFSv4 mounts and properly prepend pseudoroot of NFS filesystem to the path. If you specify this option, edquota will always send paths with a leading slash. This can be useful for legacy reasons but be aware that quota over RPC will stop working if you are using new rpc.rquotad.
-u, --user Edit the user quota. This is the default.
-g, --group Edit the group quota.
-P, --project Edit the project quota.
-p, --prototype=protoname Duplicate the quotas of the prototypical user specified for each user specified.  This is the normal mechanism used to initialize quotas for groups of users.
--always-resolve Always try to translate user / group name to uid / gid even if the name is composed of digits only.
-F, --format=format-name Edit quota for specified format (ie. don't perform format autodetection).  Possible format names are: vfsold Original quota format with 16-bit UIDs / GIDs, vfsv0 Quota format with 32-bit UIDs / GIDs, 64-bit space usage, 32-bit inode usage and limits, vfsv1 Quota format with 64-bit quota limits and usage, rpc (quota over NFS), xfs (quota on XFS filesystem)
-f, --filesystem filesystem Perform specified operations only for given filesystem (default is to perform operations for all filesystems with quota).
-t, --edit-period Edit the soft time limits for each filesystem.  In old quota format if the time limits are zero, the default time limits in <linux/quota.h> are used. In new quota format time limits must be specified (there is no default value set in kernel). Time units of 'seconds', 'minutes', 'hours', and 'days' are understood. Time limits are printed in the greatest possible time unit such that the value is greater than or equal to one.
-T, --edit-times Edit time for the user/group/project when softlimit is enforced. Possible values are 'unset' or number and unit. Units are the same as in -t option.
aquota.user or aquota.group quota file at the filesystem root (version 2 quota, non-XFS filesystems) quota.user or quota.group quota file at the filesystem root (version 1 quota, non-XFS filesystems) /etc/mtab           mounted filesystems table
quota(1), vi(1), quotactl(2), quotacheck(8), quotaon(8), repquota(8), setquota(8)
BUILTIN(1)                 BSD General Commands Manual                BUILTIN(1)
builtin, !, %, ., :, @, [, {, }, alias, alloc, bg, bind, bindkey, break, breaksw, builtins, case, cd, chdir, command, complete, continue, default, dirs, do, done, echo, echotc, elif, else, end, endif, endsw, esac, eval, exec, exit, export, false, fc, fg, filetest, fi, for, foreach, getopts, glob, goto, hash, hashstat, history, hup, if, jobid, jobs, kill, limit, local, log, login, logout, ls-F, nice, nohup, notify, onintr, popd, printenv, printf, pushd, pwd, read, readonly, rehash, repeat, return, sched, set, setenv, settc, setty, setvar, shift, source, stop, suspend, switch, telltc, test, then, time, times, trap, true, type, ulimit, umask, unalias, uncomplete, unhash, unlimit, unset, unsetenv, until, wait, where, which, while — shell built-in commands
See the built-in command description in the appropriate shell manual page.
Shell builtin commands are commands that can be executed within the running shell's process.  Note that, in the case of csh(1) builtin commands, the command is executed in a subshell if it occurs as any component of a pipeline except the last.
If a command specified to the shell contains a slash ‘/’, the shell will not execute a builtin command, even if the last component of the specified command matches the name of a builtin command.  Thus, while specifying “echo” causes a builtin command to be executed under shells that support the echo builtin command, specifying “/bin/echo” or “./echo” does not.
While some builtin commands may exist in more than one shell, their operation may be different under each shell which supports them.  Below is a table which lists shell builtin commands, the standard shells that support them and whether they exist as standalone utilities.
Only builtin commands for the csh(1) and sh(1) shells are listed here. Consult a shell's manual page for details on the operation its builtin commands.  Beware that the sh(1) manual page, at least, calls some of these commands “built-in commands” and some of them “reserved words”.  Users of other shells may need to consult an info(1) page or other sources of documentation.
Commands marked “No**” under External do exist externally, but are implemented as scripts using a builtin command of the same name.
csh(1), echo(1), false(1), info(1), kill(1), login(1), nice(1), nohup(1), printenv(1), printf(1), pwd(1), sh(1), test(1), time(1), true(1), which(1)
The builtin manual page first appeared in FreeBSD 3.4.
This manual page was written by Sheldon Hearn <sheldonh@FreeBSD.org>.
SHASUM(1)               Perl Programmers Reference Guide               SHASUM(1)
shasum - Print or Check SHA Checksums
Usage: shasum [OPTION]... [FILE]... Print or check SHA checksums. With no FILE, or when FILE is -, read standard input.
-a, --algorithm   1 (default), 224, 256, 384, 512, 512224, 512256 -b, --binary      read in binary mode -c, --check       read SHA sums from the FILEs and check them --tag         create a BSD-style checksum -t, --text        read in text mode (default) -U, --UNIVERSAL   read in Universal Newlines mode produces same digest on Windows/Unix/Mac -0, --01          read in BITS mode ASCII '0' interpreted as 0-bit, ASCII '1' interpreted as 1-bit, all other characters ignored
The following five options are useful only when verifying checksums: --ignore-missing  don't fail or report status for missing files -q, --quiet           don't print OK for each successfully verified file -s, --status          don't output anything, status code shows success --strict          exit non-zero for improperly formatted checksum lines -w, --warn            warn about improperly formatted checksum lines
-h, --help        display this help and exit -v, --version     output version information and exit
When verifying SHA-512/224 or SHA-512/256 checksums, indicate the algorithm explicitly using the -a option, e.g.
shasum -a 512224 -c checksumfile
The sums are computed as described in FIPS PUB 180-4.  When checking, the input should be a former output of this program.  The default mode is to print a line with checksum, a character indicating type (`*' for binary, ` ' for text, `U' for UNIVERSAL, `^' for BITS), and name for each FILE.  The line starts with a `\' character if the FILE name contains either newlines or backslashes, which are then replaced by the two-character sequences `\n' and `\\' respectively.
Report shasum bugs to mshelor@cpan.org
Running shasum is often the quickest way to compute SHA message digests. The user simply feeds data to the script through files or standard input, and then collects the results from standard output.
The following command shows how to compute digests for typical inputs such as the NIST test vector "abc":
perl -e "print qq(abc)" | shasum
Or, if you want to use SHA-256 instead of the default SHA-1, simply say:
perl -e "print qq(abc)" | shasum -a 256
Since shasum mimics the behavior of the combined GNU sha1sum, sha224sum, sha256sum, sha384sum, and sha512sum programs, you can install this script as a convenient drop-in replacement.
Unlike the GNU programs, shasum encompasses the full SHA standard by allowing partial-byte inputs.  This is accomplished through the BITS option (-0).  The following example computes the SHA-224 digest of the 7-bit message 0001100:
perl -e "print qq(0001100)" | shasum -0 -a 224
Copyright (C) 2003-2018 Mark Shelor <mshelor@cpan.org>.
shasum is implemented using the Perl module Digest::SHA.
ifup(8)                                                                  ifup(8)
ifup - bring a network interface up
ifdown - take a network interface down
ifquery - parse interface configuration
ifup [-nv] [--no-act] [--verbose] [-i FILE|--interfaces=FILE] [--state- dir=DIR] [--allow CLASS] -a|IFACE... ifup -h|--help ifup -V|--version
ifdown [-nv] [--no-act] [--verbose] [-i FILE|--interfaces=FILE] [--state- dir=DIR] [--allow CLASS] -a|IFACE...
ifquery [-nv] [--verbose] [-i FILE|--interfaces=FILE] [--state-dir=DIR] [--allow CLASS] IFACE...
ifquery -l|--list [-nv] [--verbose] [-i FILE|--interfaces=FILE] [--state- dir=DIR] [--allow CLASS] [-a|IFACE...]
ifquery --state [--state-dir=DIR] [--allow CLASS] [-a|IFACE...]
The ifup and ifdown commands may be used to configure (or, respectively, deconfigure) network interfaces based on interface definitions in the file /etc/network/interfaces.  ifquery command may be used to parse interfaces configuration.
-a, --all If given to ifup, affect all interfaces marked auto.  Interfaces are brought up in the order in which they are defined in /etc/network/interfaces.  Combined with --allow, acts on all interfaces of a specified class instead.  If given to ifdown, affect all defined interfaces.  Interfaces are brought down in the order in which they are currently listed in the state file. Only interfaces defined in /etc/network/interfaces will be brought down.
--force Force configuration or deconfiguration of the interface.
--ignore-errors If any of the commands of scripts fails, continue.
-h, --help Show summary of options.
--allow=CLASS Only allow interfaces listed in an allow-CLASS line in /etc/network/interfaces to be acted upon.
-i FILE, --interfaces=FILE Read interface definitions from FILE instead of from /etc/network/interfaces.
--state-dir=DIR Keep interface state in DIR instead of in /run/network.
-X PATTERN, --exclude=PATTERN Exclude interfaces from the list of interfaces to operate on by the PATTERN.  PATTERN uses a usual shell glob syntax. If shell wildcards are not used, it must match the exact interface name. This option may be specified multiple times resulting in more than one pattern being excluded.
-o OPTION=VALUE Set OPTION to VALUE as though it were in /etc/network/interfaces.
-n, --no-act Don't configure any interfaces or run any "up" or "down" commands.
--no-mappings Don't run any mappings.  See interfaces(5) for more information about the mapping feature.
--no-scripts Don't run any scripts under /etc/network/if-*.d/
--no-loopback Disable special handling of the loopback interface. By default, the loopback interface (lo on Linux) is predefined internally as an auto interface, so it's brought up on ifup -a automatically. In the case the loopback device is redefined by user, the interface is configured just once anyway. If, however, another interface is also defined as loopback, it's configured as usual. Specifying this option disables this behaviour, so the loopback interface won't be configured automatically.
-V, --version Show copyright and version information.
-v, --verbose Show commands as they are executed.
-l, --list For ifquery, list all the interfaces which match the specified class.  If no class specified, prints all the interfaces listed as auto.
--state For ifquery, dump the state of the interfaces. When no interfaces specified, lists all interfaces brought up together with logical interfaces assigned to them and exits with a status code indicating success. If one or more interfaces specified, display state of these interfaces only; successful code is returned if all of interfaces given as arguments are up. Otherwise, 0 is returned.
ifup -a Bring up all the interfaces defined with auto in /etc/network/interfaces
ifup eth0 Bring up interface eth0
ifup eth0=home Bring up interface eth0 as logical interface home
ifdown -a Bring down all interfaces that are currently up.
ifquery -l Print names of all interfaces specified with the auto keyword.
ifquery -l --allow=hotplug Print names of all interfaces specified with the allow-hotplug keyword.
ifquery eth0 Display the interface options as specified in the ifupdown configuration. Each key-value pair is printed out on individual line using ": " as separator.
ifup, ifdown, and ifquery are actually the same program called by different names.
The program does not configure network interfaces directly; it runs low level utilities such as ip to do its dirty work.
When invoked, ifdown checks if ifup is still running. In that case, SIGTERM is sent to ifup.
During interface deconfiguration, ifdown ignores errors the same way as if --ignore-errors was specified.
/etc/network/interfaces definitions of network interfaces See interfaces(5) for more information.
/run/network/ifstate current state of network interfaces
Ifupdown uses per-interface locking to ensure that concurrent ifup and ifdown calls to the same interface are run in serial.  However, calls to different interfaces will be able to run in parallel.
For ifup and ifdown, the exit status will be 0 if the given interface(s) have all been (de)configured successfully, 1 if there was any error.  The result of these commands is idempotent; running ifup on an interface that is already up will result in an exit status of 0, and similarly running ifdown on an interface that is not up will also result in an exit status of 0.
ifquery will normally return with exit status 0 if an interface with a matching iface stanza, 1 if there is no matching stanza.  ifquery --state will also return with exit status 1 if the given interface was known but was not up.
KNOWN BUGS/LIMITATIONS The program keeps records of whether network interfaces are up or down. Under exceptional circumstances these records can become inconsistent with the real states of the interfaces.  For example, an interface that was brought up using ifup and later deconfigured using ifconfig will still be recorded as up.  To fix this you can use the --force option to force ifup or ifdown to run configuration or deconfiguration commands despite what it considers the current state of the interface to be.
The file /run/network/ifstate must be writable for ifup or ifdown to work properly.  If that location is not writable (for example, because the root filesystem is mounted read-only for system recovery) then /run/network/ifstate should be made a symbolic link to a writable location.  If that is not possible then you can use the --force option to run configuration or deconfiguration commands without updating the file.
Note that the program does not run automatically: ifup alone does not bring up interfaces that appear as a result of hardware being installed and ifdown alone does not bring down interfaces that disappear as a result of hardware being removed.  To automate the configuration of network interfaces you need to install other packages such as udev(7) or ifplugd(8).
The ifupdown suite was created by Anthony Towns <aj@azure.humbug.org.au>, currently maintained by Santiago Ruano RincÃ³n <santiago@debian.org> and Josue Ortega <josue@debian.org>
Many others have helped develop ifupdown over time, see /usr/share/doc/ifupdown/changelog.Debian.gz for a full history.
interfaces(5), ip(8), ifconfig(8).
ESBUILD(1)                       esbuild Manual                       ESBUILD(1)
esbuild - an extremely fast JavaScript bundler and minifier
esbuild [options] [entry points]
esbuild is a JavaScript bundler and minifier.  It packages up JavaScript and TypeScript code for distribution on the web.
Why build another JavaScript build tool?  The current build tools for the web are at least an order of magnitude slower than they should be.  It is hoped that this project serves as an “existence proof” that JavaScript tooling can be much, much faster.
--bundle Bundle all dependencies into the output files
--define:K=V Substitute K with V while parsing
--external:M Exclude module M from the bundle (can use * wildcards)
--format=... Output format (iife | cjs | esm, no default when not bundling, otherwise default is iife when platform is browser and cjs when platform is node)
--loader:X=L Use loader L to load file extension X, where L is one of: js | jsx | ts | tsx | json | text | base64 | file | dataurl | binary
--minify Minify the output (sets all --minify-* flags)
--outdir=... The output directory (for multiple entry points)
--outfile=... The output file (for one entry point)
--platform=... Platform target (browser | node | neutral, default browser)
--serve=... Start a local HTTP server on this host:port for outputs
--sourcemap Emit a source map
--splitting Enable code splitting (currently only for esm)
--target=... Environment target (e.g. es2017, chrome58, firefox57, safari11, edge16, node10, default esnext)
--watch Watch mode: rebuild on file system changes
--allow-overwrite Allow output files to overwrite input files
--analyze Print a report about the contents of the bundle (use “--analyze=verbose” for a detailed report)
--asset-names=... Path template to use for “file” loader files (default “[name]-[hash]”)
--banner:T=... Text to be prepended to each output file of type T where T is one of: css | js
--charset=utf8 Do not escape UTF-8 code points
--chunk-names=... Path template to use for code splitting chunks (default “[name]-[hash]”)
--color=... Force use of color terminal escapes (true | false)
--entry-names=... Path template to use for entry point output paths (default “[dir]/[name]”, can also use “[hash]”)
--footer:T=... Text to be appended to each output file of type T where T is one of: css | js
--global-name=... The name of the global for the IIFE format --ignore-annotations Enable this to work with packages that have incorrect tree-shaking annotations
--inject:F Import the file F into all input files and automatically replace matching globals with imports
--jsx-factory=... What to use for JSX instead of React.createElement
--jsx-fragment=... What to use for JSX instead of React.Fragment
--jsx=... Set to “preserve” to disable transforming JSX to JS
--keep-names Preserve “name” on functions and classes
--legal-comments=... Where to place license comments (none | inline | eof | linked | external, default eof when bundling and inline otherwise)
--log-level=... Disable logging (verbose | debug | info | warning | error | silent, default info)
--log-limit=... Maximum message count or 0 to disable (default 10)
--main-fields=... Override the main file order in package.json (default “browser,module,main” when platform is browser and “main,module” when platform is node)
--metafile=... Write metadata about the build to a JSON file
--minify-whitespace Remove whitespace in output files
--minify-identifiers Shorten identifiers in output files
--minify-syntax Use equivalent but shorter syntax in output files
--out-extension:.js=.mjs Use a custom output extension instead of “.js”
--outbase=... The base path used to determine entry point output paths (for multiple entry points)
--preserve-symlinks Disable symlink resolution for module lookup
--public-path=... Set the base URL for the “file” loader
--pure:N Mark the name N as a pure function for tree shaking
--resolve-extensions=... A comma-separated list of implicit extensions (default “.tsx,.ts,.jsx,.js,.css,.json”)
--servedir=... What to serve in addition to generated output files
--source-root=... Sets the “sourceRoot” field in generated source maps
--sourcefile=... Set the source file for the source map (for stdin)
--sourcemap=external Do not link to the source map with a comment
--sourcemap=inline Emit the source map with an inline data URL
--sources-content=false Omit “sourcesContent” in generated source maps
--tree-shaking=... Force tree shaking on or off (false | true)
--tsconfig=... Use this tsconfig.json file instead of other ones
--version Print the current version (0.13.12) and exit
esbuild --bundle entry_point.js --outdir=dist --minify --sourcemap # Produces dist/entry_point.js and dist/entry_point.js.map
esbuild --bundle entry_point.js --outfile=out.js --loader:.js=jsx # Allow JSX syntax in .js files
esbuild example.js --outfile=out.js --define:RELEASE=true # Substitute the identifier RELEASE for the literal true
esbuild --minify --loader=ts < input.ts > output.js # Provide input via stdin, get output via stdout
esbuild app.ts --bundle --watch # Automatically rebuild when input files are changed
esbuild app.ts --bundle --servedir=www --outdir=www/js # Start a local HTTP server for everything in “www”
esbuild is written by Evan Wallace.
This manual page is prepared for Debian by Anthony Fok using information from upstream README.md and output of esbuild --help.
Copyright © 2020 Evan Wallace License: MIT (Expat)
Documentation: https://esbuild.github.io/
Repository: https://github.com/evanw/esbuild
TPP(1)                            User Commands                           TPP(1)
TPP - Text Presentation Program
tpp <OPTIONS> <FILE>
Tpp stands for text presentation program and is an ncurses-based presentation tool. The presentation can be written with your favorite editor in a simple description format and then shown on any text terminal that is supported by ncurses - ranging from an old VT100 to the Linux framebuffer to an xterm.
It supports color, various output modes, sliding in text, command prompt, LaTeX conversion and more.
-h/--help display help
-l output.tex input.tpp converts tpp slides into tex
-x allow usage of "--exec"
-v/--version display version number
space  display next entry within page
space, cursor-down, cursor-right display next page
b, cursor-up, cursor-left display previous page
q, Q   quit tpp
j, J   jump directly to page
s, S   jump to the start page
e, E   jump to the last page
c, C   start command line
The tpp presentation formats consists of normal text lines and special commands. Special commands are contained in lines that begin with "--" and the command name.
See /usr/share/doc/tpp/README.gz for complete list of command names, and /usr/share/doc/tpp/examples for TPP presentation examples, including presentation slides that have been in real-life presentations.
In /usr/share/doc/tpp/contrib you'll find a syntax file for the vim editor.  See /usr/share/doc/tpp/README.gz for installation instructions.
Tpp was written by Nico Golde <nico@ngolde.de> and Andreas Krennmair <ak@synflood.at>
QR(1)                            Python QR tool                            QR(1)
qr - script to create QR codes at the command line
qr [--help] [--factory=FACTORY] [--optimize=OPTIMIZE] [--error-correction=LEVEL] [data]
This script uses the python qrcode module. It can take data from stdin or from the commandline and generate a QR code.  Normally it will output the QR code as ascii art to the terminal. If the output is piped to a file, it will output the image (default type of PNG).
-h, --help Show a help message.
--factory=FACTORY Full python path to the image factory class to create the image with. You can use the following shortcuts to the built-in image factory classes: pil (default), pymaging, svg, svg-fragment, svg-path.
--optimize=OPTIMIZE Optimize the data by looking for chunks of at least this many characters that could use a more efficient encoding method. Use 0 to turn off chunk optimization.
--error-correction=LEVEL The error correction level to use. Choices are L (7%), M (15%, default), Q (25%), and H (30%).
data The data from which the QR code will be generated.
https://github.com/lincolnloop/python-qrcode/
opusenc(1)                         opus-tools                         opusenc(1)
opusenc - encode audio into the Opus format
opusenc [ -h ] [ -V ] [ --help-picture ] [ --quiet ] [ --bitrate kbit/s ] [ --vbr ] [ --cvbr ] [ --hard-cbr ] [ --music ] [ --speech ] [ --comp complexity ] [ --framesize 2.5, 5, 10, 20, 40, 60 ] [ --expect-loss pct ] [ --downmix-mono ] [ --downmix-stereo ] [ --no-phase-inv ] [ --max-delay ms ] [ --title 'track title' ] [ --artist author ] [ --album 'album title' ] [ --tracknumber 'track number' ] [ --genre genre ] [ --date YYYY-MM-DD ] [ --comment tag=value ] [ --picture filename|specification ] [ --padding n ] [ --discard-comments ] [ --discard-pictures ] [ --raw ] [ --raw-bits bits/sample ] [ --raw-rate Hz ] [ --raw-chan N ] [ --raw- endianness flag ] [ --ignorelength ] [ --serial serial number ] [ --save- range file ] [ --set-ctl-int ctl=value ] input.wav output.opus
opusenc reads audio data in Wave, AIFF, FLAC, Ogg/FLAC, or raw PCM format and encodes it into an Ogg Opus stream. If the input file is "-" audio data is read from stdin.  Likewise, if the output file is "-" the Ogg Opus stream is written to stdout.
Unless quieted opusenc displays fancy statistics about the encoding progress.
General options -h, --help Show command help
-V, --version Show the version number
--help-picture Show help on attaching album art
--quiet Enable quiet mode. No messages are displayed.
Encoding options --bitrate N.nnn Set target bitrate in kbit/s (6-256 per channel)
In VBR mode this specifies the average rate for a large and diverse collection of audio. In CVBR and Hard-CBR mode it specifies the specific output bitrate.
The default for input with a sample rate of 44.1 kHz or higher is 64 kbit/s per mono stream and 96 kbit/s per coupled pair.
--vbr  Use variable bitrate encoding (default)
In VBR mode the bitrate may go up and down freely depending on the content to achieve more consistent quality.
--cvbr Use constrained variable bitrate encoding.
Outputs to a specific bitrate. This mode is analogous to CBR in AAC/MP3 encoders and managed mode in Vorbis coders. This delivers less consistent quality than VBR mode but consistent bitrate.
--hard-cbr Use hard constant bitrate encoding.
With hard-cbr every frame will be exactly the same size, similar to how speech codecs work. This delivers lower overall quality but is useful where bitrate changes might leak data in encrypted channels or on synchronous transports.
--music Override automatic detection and tune low bitrate encoding for music.  By default, music is detected automatically and the classification may vary over time.
Tuning impacts lower bitrates that involve tradeoffs between speech clarity and musical accuracy, and has no impact at bitrates typically used for high quality music encoding.
--speech Override automatic detection and tune low bitrate encoding for speech.  By default, speech is detected automatically and the classification may vary over time.
--comp N Set encoding computational complexity (0-10, default: 10). Zero gives the fastest encodes but lower quality, while 10 gives the highest quality but slower encoding.
--framesize N Set maximum frame size in milliseconds (2.5, 5, 10, 20, 40, 60, default: 20) Smaller framesizes achieve lower latency but less quality at a given bitrate. Sizes greater than 20ms are only interesting at fairly low bitrates.
--expect-loss N Set expected packet loss in percent (default: 0)
--downmix-mono Downmix to mono
--downmix-stereo Downmix to stereo (if >2 channels input)
--no-phase-inv Disable use of phase inversion for intensity stereo. This trades some stereo quality for a higher quality mono downmix, and is useful when encoding stereo audio that is likely to be downmixed to mono after decoding.
--max-delay N Set maximum container delay in milliseconds (0-1000, default: 1000)
Metadata options --title title Set the track title comment field to title
--artist artist Set the artist comment field to artist.  This may be used multiple times to list contributing artists individually.  Note that some playback software does not display multiple artists gracefully.
--album album Set the album or collection title field to album
--tracknumber N Set the track number comment field to N
--date YYYY-MM-DD Set the date comment field to YYYY-MM-DD.  This may be shortened to YYYY-MM or YYYY.
--genre genre Set the genre comment field to genre.  This option may be specified multiple times to tag a track with multiple overlapping genres.
--comment tag=value Add an extra comment.  This may be used multiple times.  The argument should be in the form "tag=value".  See the vorbis- comment specification for well known tag names: https://www.xiph.org/vorbis/doc/v-comment.html
--picture filename|specification Attach album art for the track.
Either a filename for the artwork or a more complete specification form can be used.  The picture is added to a METADATA_BLOCK_PICTURE comment field similar to what is used in FLAC.  The specification is a string whose parts are separated by | (pipe) characters.  Some parts may be left empty to invoke default values.  Passing a plain filename is just shorthand for the "||||filename" specification.
The format of specification is [type]|[media- type]|[description]|[widthxheightxdepth[/colors]]|filename
type is an optional number describing the nature of the picture. Defined values are from one of:
0: Other 1: 32x32 pixel 'file icon' (PNG only) 2: Other file icon 3: Cover (front) 4: Cover (back) 5: Leaflet page 6: Media (e.g., label side of a CD) 7: Lead artist/lead performer/soloist 8: Artist/performer 9: Conductor 10: Band/Orchestra 11: Composer 12: Lyricist/text writer 13: Recording location 14: During recording 15: During performance 16: Movie/video screen capture 17: A bright colored fish 18: Illustration 19: Band/artist logotype 20: Publisher/studio logotype
The default is 3 (front cover).  More than one --picture option can be specified to attach multiple pictures.  There may only be one picture each of type 1 and 2 in a file.
media-type is optional and is now ignored.
description is optional. The default is an empty string.
The next part specifies the resolution and color information, but is now ignored.
filename is the path to the picture file to be imported.
--padding n Reserve n extra bytes for metadata tags. This can make later tag editing more efficient. Defaults to 512.
--discard-comments Don't propagate metadata tags from the input file.
--discard-pictures Don't propagate pictures or art from the input file.
Input options --raw  Interpret input as raw PCM data without headers
--raw-bits N Set bits/sample for raw input (default: 16)
--raw-rate N Set sampling rate for raw input (default: 48000)
--raw-chan N Set number of channels for raw input (default: 2)
--raw-endianness [0/1] Set the endianness for raw input: 1 for big endian, 0 for little (default: 0)
--ignorelength Ignore the data length in Wave headers. Opusenc automatically ignores the length when its implausible (very small or very large) but some STDIN usage may still need this option to avoid truncation.
Diagnostic options --serial n Force use of a specific stream serial number, rather than one that is randomly generated.  This is used to make the encoder deterministic for testing and is not generally recommended.
--save-range file Save check values for every frame to a file
--set-ctl-int x=y Pass the encoder control x with value y (advanced).  Preface with s: to direct the ctl to multistream s This may be used multiple times
Simplest usage. Take input as input.wav and produce output as output.opus: opusenc input.wav output.opus
Produce a very high quality encode with a target rate of 160 kbit/s: opusenc --bitrate 160 input.wav output.opus
Record and send a live stream to an Icecast HTTP streaming server using oggfwd: arecord -c 2 -r 48000 -twav - | opusenc --bitrate 96 -  - | oggfwd icecast.somewhere.org 8000 password /stream.opus
While it is possible to use opusenc for low latency streaming (e.g. with --max-delay set to 0 and netcat instead of Icecast) it's not really designed for this, and the Ogg container and TCP transport aren't the best tools for that application. Shell pipelines themselves will often have high buffering. The ability to set framesizes as low as 2.5 ms in opusenc mostly exists to try out the quality of the format with low latency settings, but not really for actual low latency usage. Interactive usage should use UDP/RTP directly.
Gregory Maxwell <greg@xiph.org>
opusdec(1), opusinfo(1), oggfwd(1)
GIT-REV-PARSE(1)                   Git Manual                   GIT-REV-PARSE(1)
git-rev-parse - Pick out and massage parameters
git rev-parse [<options>] <args>...
Many Git porcelainish commands take mixture of flags (i.e. parameters that begin with a dash -) and parameters meant for the underlying git rev-list command they use internally and flags and parameters for the other commands they use downstream of git rev-list. This command is used to distinguish between them.
Operation Modes Each of these options must appear first on the command line.
--parseopt Use git rev-parse in option parsing mode (see PARSEOPT section below).
--sq-quote Use git rev-parse in shell quoting mode (see SQ-QUOTE section below). In contrast to the --sq option below, this mode does only quoting. Nothing else is done to command input.
Options for --parseopt --keep-dashdash Only meaningful in --parseopt mode. Tells the option parser to echo out the first -- met instead of skipping it.
--stop-at-non-option Only meaningful in --parseopt mode. Lets the option parser stop at the first non-option argument. This can be used to parse sub-commands that take options themselves.
--stuck-long Only meaningful in --parseopt mode. Output the options in their long form if available, and with their arguments stuck.
Options for Filtering --revs-only Do not output flags and parameters not meant for git rev-list command.
--no-revs Do not output flags and parameters meant for git rev-list command.
--flags Do not output non-flag parameters.
--no-flags Do not output flag parameters.
Options for Output --default <arg> If there is no parameter given by the user, use <arg> instead.
--prefix <arg> Behave as if git rev-parse was invoked from the <arg> subdirectory of the working tree. Any relative filenames are resolved as if they are prefixed by <arg> and will be printed in that form.
This can be used to convert arguments to a command run in a subdirectory so that they can still be used after moving to the top-level of the repository. For example:
prefix=$(git rev-parse --show-prefix) cd "$(git rev-parse --show-toplevel)" # rev-parse provides the -- needed for 'set' eval "set $(git rev-parse --sq --prefix "$prefix" -- "$@")"
--verify Verify that exactly one parameter is provided, and that it can be turned into a raw 20-byte SHA-1 that can be used to access the object database. If so, emit it to the standard output; otherwise, error out.
If you want to make sure that the output actually names an object in your object database and/or can be used as a specific type of object you require, you can add the ^{type} peeling operator to the parameter. For example, git rev-parse "$VAR^{commit}" will make sure $VAR names an existing object that is a commit-ish (i.e. a commit, or an annotated tag that points at a commit). To make sure that $VAR names an existing object of any type, git rev-parse "$VAR^{object}" can be used.
Note that if you are verifying a name from an untrusted source, it is wise to use --end-of-options so that the name argument is not mistaken for another option.
-q, --quiet Only meaningful in --verify mode. Do not output an error message if the first argument is not a valid object name; instead exit with non-zero status silently. SHA-1s for valid object names are printed to stdout on success.
--sq Usually the output is made one line per flag and parameter. This option makes output a single line, properly quoted for consumption by shell. Useful when you expect your parameter to contain whitespaces and newlines (e.g. when using pickaxe -S with git diff-*). In contrast to the --sq-quote option, the command input is still interpreted as usual.
--short[=length] Same as --verify but shortens the object name to a unique prefix with at least length characters. The minimum length is 4, the default is the effective value of the core.abbrev configuration variable (see git-config(1)).
--not When showing object names, prefix them with ^ and strip ^ prefix from the object names that already have one.
--abbrev-ref[=(strict|loose)] A non-ambiguous short name of the objects name. The option core.warnAmbiguousRefs is used to select the strict abbreviation mode.
--symbolic Usually the object names are output in SHA-1 form (with possible ^ prefix); this option makes them output in a form as close to the original input as possible.
--symbolic-full-name This is similar to --symbolic, but it omits input that are not refs (i.e. branch or tag names; or more explicitly disambiguating "heads/master" form, when you want to name the "master" branch when there is an unfortunately named tag "master"), and show them as full refnames (e.g. "refs/heads/master").
Options for Objects --all Show all refs found in refs/.
--branches[=pattern], --tags[=pattern], --remotes[=pattern] Show all branches, tags, or remote-tracking branches, respectively (i.e., refs found in refs/heads, refs/tags, or refs/remotes, respectively).
If a pattern is given, only refs matching the given shell glob are shown. If the pattern does not contain a globbing character (?, *, or [), it is turned into a prefix match by appending /*.
--glob=pattern Show all refs matching the shell glob pattern pattern. If the pattern does not start with refs/, this is automatically prepended. If the pattern does not contain a globbing character (?, *, or [), it is turned into a prefix match by appending /*.
--disambiguate=<prefix> Show every object whose name begins with the given prefix. The <prefix> must be at least 4 hexadecimal digits long to avoid listing each and every object in the repository by mistake.
Options for Files --local-env-vars List the GIT_* environment variables that are local to the repository (e.g. GIT_DIR or GIT_WORK_TREE, but not GIT_EDITOR). Only the names of the variables are listed, not their value, even if they are set.
--path-format=(absolute|relative) Controls the behavior of certain other options. If specified as absolute, the paths printed by those options will be absolute and canonical. If specified as relative, the paths will be relative to the current working directory if that is possible. The default is option specific.
This option may be specified multiple times and affects only the arguments that follow it on the command line, either to the end of the command line or the next instance of this option.
The following options are modified by --path-format:
--git-dir Show $GIT_DIR if defined. Otherwise show the path to the .git directory. The path shown, when relative, is relative to the current working directory.
If $GIT_DIR is not defined and the current directory is not detected to lie in a Git repository or work tree print a message to stderr and exit with nonzero status.
--git-common-dir Show $GIT_COMMON_DIR if defined, else $GIT_DIR.
--resolve-git-dir <path> Check if <path> is a valid repository or a gitfile that points at a valid repository, and print the location of the repository. If <path> is a gitfile then the resolved path to the real repository is printed.
--git-path <path> Resolve "$GIT_DIR/<path>" and takes other path relocation variables such as $GIT_OBJECT_DIRECTORY, $GIT_INDEX_FILE... into account. For example, if $GIT_OBJECT_DIRECTORY is set to /foo/bar then "git rev-parse --git-path objects/abc" returns /foo/bar/abc.
--show-toplevel Show the (by default, absolute) path of the top-level directory of the working tree. If there is no working tree, report an error.
--show-superproject-working-tree Show the absolute path of the root of the superproject’s working tree (if exists) that uses the current repository as its submodule. Outputs nothing if the current repository is not used as a submodule by any project.
--shared-index-path Show the path to the shared index file in split index mode, or empty if not in split-index mode.
The following options are unaffected by --path-format:
--absolute-git-dir Like --git-dir, but its output is always the canonicalized absolute path.
--is-inside-git-dir When the current working directory is below the repository directory print "true", otherwise "false".
--is-inside-work-tree When the current working directory is inside the work tree of the repository print "true", otherwise "false".
--is-bare-repository When the repository is bare print "true", otherwise "false".
--is-shallow-repository When the repository is shallow print "true", otherwise "false".
--show-cdup When the command is invoked from a subdirectory, show the path of the top-level directory relative to the current directory (typically a sequence of "../", or an empty string).
--show-prefix When the command is invoked from a subdirectory, show the path of the current directory relative to the top-level directory.
--show-object-format[=(storage|input|output)] Show the object format (hash algorithm) used for the repository for storage inside the .git directory, input, or output. For input, multiple algorithms may be printed, space-separated. If not specified, the default is "storage".
Other Options --since=datestring, --after=datestring Parse the date string, and output the corresponding --max-age= parameter for git rev-list.
--until=datestring, --before=datestring Parse the date string, and output the corresponding --min-age= parameter for git rev-list.
<args>... Flags and parameters to be parsed.
A revision parameter <rev> typically, but not necessarily, names a commit object. It uses what is called an extended SHA-1 syntax. Here are various ways to spell object names. The ones listed near the end of this list name trees and blobs contained in a commit.
Note This document shows the "raw" syntax as seen by git. The shell and other UIs might require additional quoting to protect special characters and to avoid word splitting.
<sha1>, e.g. dae86e1950b1277e545cee180551750029cfe735, dae86e The full SHA-1 object name (40-byte hexadecimal string), or a leading substring that is unique within the repository. E.g. dae86e1950b1277e545cee180551750029cfe735 and dae86e both name the same commit object if there is no other object in your repository whose object name starts with dae86e.
<describeOutput>, e.g. v1.7.4.2-679-g3bee7fb Output from git describe; i.e. a closest tag, optionally followed by a dash and a number of commits, followed by a dash, a g, and an abbreviated object name.
<refname>, e.g. master, heads/master, refs/heads/master A symbolic ref name. E.g.  master typically means the commit object referenced by refs/heads/master. If you happen to have both heads/master and tags/master, you can explicitly say heads/master to tell Git which one you mean. When ambiguous, a <refname> is disambiguated by taking the first match in the following rules:
1. If $GIT_DIR/<refname> exists, that is what you mean (this is usually useful only for HEAD, FETCH_HEAD, ORIG_HEAD, MERGE_HEAD and CHERRY_PICK_HEAD);
2. otherwise, refs/<refname> if it exists;
3. otherwise, refs/tags/<refname> if it exists;
4. otherwise, refs/heads/<refname> if it exists;
5. otherwise, refs/remotes/<refname> if it exists;
6. otherwise, refs/remotes/<refname>/HEAD if it exists.
HEAD names the commit on which you based the changes in the working tree.  FETCH_HEAD records the branch which you fetched from a remote repository with your last git fetch invocation. ORIG_HEAD is created by commands that move your HEAD in a drastic way, to record the position of the HEAD before their operation, so that you can easily change the tip of the branch back to the state before you ran them.  MERGE_HEAD records the commit(s) which you are merging into your branch when you run git merge. CHERRY_PICK_HEAD records the commit which you are cherry-picking when you run git cherry-pick.
Note that any of the refs/* cases above may come either from the $GIT_DIR/refs directory or from the $GIT_DIR/packed-refs file. While the ref name encoding is unspecified, UTF-8 is preferred as some output processing may assume ref names in UTF-8.
@ @ alone is a shortcut for HEAD.
[<refname>]@{<date>}, e.g. master@{yesterday}, HEAD@{5 minutes ago} A ref followed by the suffix @ with a date specification enclosed in a brace pair (e.g.  {yesterday}, {1 month 2 weeks 3 days 1 hour 1 second ago} or {1979-02-26 18:30:00}) specifies the value of the ref at a prior point in time. This suffix may only be used immediately following a ref name and the ref must have an existing log ($GIT_DIR/logs/<ref>). Note that this looks up the state of your local ref at a given time; e.g., what was in your local master branch last week. If you want to look at commits made during certain times, see --since and --until.
<refname>@{<n>}, e.g. master@{1} A ref followed by the suffix @ with an ordinal specification enclosed in a brace pair (e.g.  {1}, {15}) specifies the n-th prior value of that ref. For example master@{1} is the immediate prior value of master while master@{5} is the 5th prior value of master. This suffix may only be used immediately following a ref name and the ref must have an existing log ($GIT_DIR/logs/<refname>).
@{<n>}, e.g. @{1} You can use the @ construct with an empty ref part to get at a reflog entry of the current branch. For example, if you are on branch blabla then @{1} means the same as blabla@{1}.
@{-<n>}, e.g. @{-1} The construct @{-<n>} means the <n>th branch/commit checked out before the current one.
[<branchname>]@{upstream}, e.g. master@{upstream}, @{u} The suffix @{upstream} to a branchname (short form <branchname>@{u}) refers to the branch that the branch specified by branchname is set to build on top of (configured with branch.<name>.remote and branch.<name>.merge). A missing branchname defaults to the current one. These suffixes are also accepted when spelled in uppercase, and they mean the same thing no matter the case.
[<branchname>]@{push}, e.g. master@{push}, @{push} The suffix @{push} reports the branch "where we would push to" if git push were run while branchname was checked out (or the current HEAD if no branchname is specified). Since our push destination is in a remote repository, of course, we report the local tracking branch that corresponds to that branch (i.e., something in refs/remotes/).
Here’s an example to make it more clear:
$ git config push.default current $ git config remote.pushdefault myfork $ git switch -c mybranch origin/master