neulab/tldr huggingface dataset:
Overwrite locally modified files with clean copies from the repository (the modified file is saved in .#file.revision, however).
Create any directories that exist in the repository if they're missing from the working directory.  Normally, update acts only on directories and files that were already enrolled in your working directory.
This is useful for updating directories that were created in the repository since the initial checkout; but it has an unfortunate side effect.  If you deliberately avoided certain directories in the repository when you created your working directory (either through use of a module name or by listing explicitly the files and directories you wanted on the command line), then updating with -d will create those directories, which may not be what you want.
Ignore files whose names match name (in your working directory) during the update.  You can specify -I more than once on the command line to specify several files to ignore.  Use -I ! to avoid ignoring any files at all.  See `cvsignore' in the CVS manual for other ways to make cvs ignore some files.
-Wspec
Specify file names that should be filtered during update.  You can use this option repeatedly.
spec can be a file name pattern of the same type that you can specify in the .cvswrappers file.  See `Wrappers' in the CVS manual.
-jrevision
Note that using a single -j tagname option rather than -j branchname to merge changes from a branch will often not remove files which were removed on the branch.  See `Merging adds and removals' in the CVS manual for more information.
update output update and checkout keep you informed of their progress by printing a line for each file, preceded by one character indicating the status of the file:
The file was brought up to date with respect to the repository.  This is done for any file that exists in the repository but not in your working directory, and for files that you haven't changed but are not the most recent versions available in the repository.
Like U, but the cvs server sends a patch instead of an entire file. This accomplishes the same thing as U using less bandwidth.
The file has been added to your private copy of the sources, and will be added to the source repository when you run commit on the file. This is a reminder to you that the file needs to be committed.
The file has been removed from your private copy of the sources, and will be removed from the source repository when you run commit on the file.  This is a reminder to you that the file needs to be committed.
The file is modified in  your  working  directory.
M can indicate one of two states for a file you're working on: either there were no modifications to the same file in the repository, so that your file remains as you last saw it; or there were modifications in the repository as well as in your copy, but they were merged successfully, without conflict, in your working directory.
cvs will print some messages if it merges your work, and a backup copy of your working file (as it looked before you ran update) will be made. The exact name of that file is printed while update runs.
A conflict was detected while trying to merge your changes to file with changes from the source repository.  file (the copy in your working directory) is now the result of attempting to merge the two revisions; an unmodified copy of your file is also in your working directory, with the name .#file.revision where revision is the revision that your modified file started from.  Resolve the conflict as described in `Conflicts example' in the CVS manual.  (Note that some systems automatically purge files that begin with .# if they have not been accessed for a few days.  If you intend to keep a copy of your original file, it is a very good idea to rename it.)  Under vms, the file name starts with __ rather than .#.
file is in your working directory, but does not correspond to anything in the source repository, and is not in the list of files for cvs to ignore (see the description of the -I option, and see node `cvsignore' in the CVS manual).
Dick Grune Original author of the cvs shell script version posted to comp.sources.unix in the volume6 release of December, 1986. Credited with much of the cvs conflict resolution algorithms.
Brian Berliner Coder and designer of the cvs program itself in April, 1989, based on the original work done by Dick.
Jeff Polk Helped Brian with the design of the cvs module and vendor branch support and author of the checkin(1) shell script (the ancestor of cvs import).
Larry Jones, Derek R. Price, and Mark D. Baushke Have helped maintain cvs for many years.
And many others too numerous to mention here.
The most comprehensive manual for CVS is Version Management with CVS by Per Cederqvist et al.  Depending on your system, you may be able to get it with the info CVS command or it may be available as cvs.pdf (Portable Document Format), cvs.ps (PostScript), cvs.texinfo (Texinfo source), or cvs.html.
For CVS updates, more information on documentation, software related to CVS, development of CVS, and more, see:
http://cvs.nongnu.org
ci(1), co(1), cvs(5), cvsbug(8), diff(1), grep(1), patch(1), rcs(1), rcsdiff(1), rcsmerge(1), rlog(1).
PO4A-TRANSLATE(1)      User Contributed Perl Documentation     PO4A-TRANSLATE(1)
po4a-translate - convert a PO file back to documentation format
po4a-translate -f fmt -m master.doc -p XX.po -l XX.doc
(XX.doc is the output, all others are inputs)
The po4a-translate script is in charge of converting the translation (which was done in a PO file) back into the documentation format. The provided PO file should be the translation of the POT file which was produced by po4a-gettextize(1).
-a, --addendum Add a file to the resulting file (to put translator's name or a section "About this translation", for example). The first line of the file to insert should be a PO4A header indicating where it should be added (see section HOWTO add extra text to translations in po4a(7)).
-m, --master File containing the master document to translate.
-l, --localized File where the localized (translated) document should be written.
-p, --po File from which the message catalog should be read.
-k, --keep Minimal threshold for translation percentage to keep (i.e. write) the resulting file (default: 80). I.e. by default, files have to be translated at at least 80% to get written.
-w, --width Column at which we should wrap the resulting file.
Adding content (beside translations) to generated files To add some extra content to the generated document beside what you translated (like the name of the translator, or a "About this translation" section), you should use the --addendum option.
The first line of the addendum must be a header indicating where to put it in the document (it can be before or after a given part of the document).  The rest of the file will be added verbatim to the resulting file without further processing.
Note that if po4a-translate fails to add one of the given files, it discards the whole translation (because the missing file could be the one indicating the author, what would prevent the users to contact him to report bugs in the translation).
The header has a pretty rigid syntax. For more information on how to use this feature and how it works, please refer to the po4a(7) man page.
po4a-gettextize(1), po4a-normalize(1), po4a-updatepo(1), po4a(7)
finch(1)                     General Commands Manual                    finch(1)
Finch - A Pimpin' Penguin console frontend to libpurple. Instant Messaging client.
finch [options]
finch is a console-based modular messaging client based on libpurple which is capable of connecting to XMPP, IRC, SILC, Novell GroupWise, Lotus Sametime, Zephyr, Gadu-Gadu, and QQ all at once. It has many common features found in other clients, as well as many unique features.
The following options are provided by finch using the standard GNU command line syntax:
-c, --config=DIR Use DIR as the directory for config files instead of ~/.purple.
-d, --debug Print debugging messages to stderr and start with the Debug window. The messages shown in the Debug window are the same as the ones printed in stderr.
-n, --nologin Don't automatically login when finch starts.  Sets all accounts to Offline.
-v, --version Display the version information window.
GNT Shortcuts You can use the following shortcuts (see the "Widget Actions" section for a more complete list):
Alt + a Bring up a list of available actions. You can use this list to access the accounts window, plugins window, preference window etc.
Alt + n Go to the next window.
Alt + p Go to the previous window.
Alt + w Show the list of windows. You can select and jump to any window from the list.
Alt + c Close the current window.
Alt + q Quit.
Alt + m Start moving a window. Press the cursor keys to move the window. When you are done, press Enter or Escape.
Alt + r Start resizing a window. Press the cursor keys to resize the window. When you are done, press Enter or Escape.
Alt + D Dump the contents of the screen in HTML format.
Alt + . Move the position of the current window in the window list one place to the right.
Alt + , Move the position of the current window in the window list one place to the left.
Alt + l Refresh the windows. This is useful after resizing the terminal window.
Alt + 1 2 ... 0 Jump to the 1st, 2nd ... 10th window.
Alt + Tab Jump to the next URGENT (highlighted) window.
Alt + Shift + Tab Jump to the previous URGENT (highlighted) window.
Ctrl + o  or  F10 Bring up the menu (if there is one) for a window.
F11  or  Ctrl + x Popup the context menu (if there is one) for the selected widget.
Alt + / Show a list of available key-bindings for the current widget in focus.
Alt + > Switch to the next workspace
Alt + < Switch to the previous workspace
Alt + t Tag (or untag) the current window
Alt + T Attached all the tagged windows to the current workspace
Alt + s Show the workspace list
F9     Create a new workspace and switch to it
~/.gntrc: configuration file for gnt applications.
A sample file looks like: [Finch] color-available = green; black color-away = blue; black color-idle = gray; black color-offline = red; black color-message-sent = cyan; default color-message-received = red; default color-message-highlight = black; green color-message-action = yellow; default color-timestamp = blue; default #See below for details on color
[general] shadow = 0 # There is experimental mouse support mouse = 1 # To use some custom window-manager wm = /usr/local/lib/gnt/s.so # There's also a custom window manager called irssi.so # Remember window-positions based on the titles (on by default) remember_position = 1 # Use borderless one-line high buttons small-button = true
# Workspaces are created simply by adding Workspace-X groups as follows: [Workspace-1] name = blist # window-names specifies that windows with these semi-colon separated names are placed into this workspace window-names = buddylist;debug-window
[Workspace-2] name = IM window-names = conversation-window # window-titles specifies that windows with these semi-colon separated titles are placed into this workspace. These are matched as substrings. Window titles take precedence over names. window-titles = Preferences;Pounce
[colors] # The RGB values range in [0, 1000] black = 0; 0; 0 red = 1000; 0; 0 green = 0; 1000; 0 blue = 250; 250; 700 white = 1000; 1000; 1000 gray = 700; 700; 700 darkgray = 256; 256; 256
[colorpairs] normal = white; black highlight = white; blue highlightd = black; gray shadow = black; darkgray title = white; blue titled = white; gray text = white; blue disabled = gray; black urgent = green; black
# Remap some keys for GntEntry [GntEntry::remap] # Remap the up-arrow to the left-arrow ^[[A = ^[[D # Remap the down-arrow to the right-arrow ^[[B = ^[[C # Remap 'a' to 'bcd' a = bcd # Completely ignore the key 'q' q = # But the following will NOT work #abc = bcd
# Hitting 'space' will activate a button [GntButton::remap] \  = \r
Widget Actions You can specify key-bindings for specific widgets. The following entries in ~/.gntrc correspond to the default keybindings for the actions:
[GntBox::binding] tab = focus-next right = focus-next left = focus-prev
[GntComboBox::binding] down = dropdown up = dropdown
[GntEntry::binding] c-a = cursor-home home = cursor-home c-e = cursor-end end = cursor-end backspace = delete-prev del = delete-next c-d = delete-next c-u = delete-start c-k = delete-end c-b = cursor-prev left = cursor-prev c-f = cursor-next right = cursor-next tab = suggest-show down = suggest-next up = suggest-prev page-down = suggest-next-page page-up = suggest-prev-page c-w = delete-prev-word a-b = cursor-prev-word a-f = cursor-next-word a-d = delete-next-word c-v = clipboard-paste c-p = history-prev c-n = history-next c-r = history-search c-up = history-prev c-down = history-next
[GntTree::binding] up = move-up down = move-down c-n = move-down c-p = move-up pageup = page-up pagedown = page-down backspace = move-parent home = move-first end = move-last # Following is the default binding for the context-menu menu = context-menu # The following will let you open the context-menu in the buddylist with c-b # c-b = context-menu
[GntWidget::binding] f11 = context-menu c-x = context-menu
[GntWindow::binding] c-o = show-menu f10 = show-menu
The c- corresponds to the Control key. You can also use ctrl- or ctr- or ctl- to indicate a combination. For alt-keys, you can use one of a-, alt-, m- or meta-. You can also use home, end, left, right etc. keys.
To unbind a key which has a default binding, you simply bind it to the empty string.  For example, to unbind Alt + q from the Quit function, you would use:
[GntWM::binding] a-q =
Menus You can also specify key-bindings to trigger specific menuitems in windows. For example, the following entry in ~/.gntrc will bind Ctrl + t to the 'Send IM...' item in the buddylist:
[buddylist::menu] c-t = send-im
The following is the list of IDs of the current menuitems in the buddylist:
send-im join-chat show-empty-groups show-offline-buddies sort-status sort-alpha sort-log add-buddy add-chat add-group
Mouse Support There is experimental mouse support. You can focus windows, activate buttons, select rows in a list, scroll using the wheel-scroll etc. Selecting text in a text-view copies it to the gnt clipboard. Mouse support is disabled by default, so you need to enable it in ~/.gntrc (see the sample above).
Window Management The default window management is very limited. But it is possible to write custom window managers to suit your needs. There is a sample window-manager included (named s.so) which adds a little 'close-button' for the windows, removes the borders from the buddylist and pops up new windows in the middle of the screen, instead of at the upper-left corder. It is provided as a sample simple manager, but it should be possible to write more complex managers, and it's very possible that the window- manager API will need to be enhanced. Look at the sample ~/.gntrc file above to see how to select a window-manager.
It is also possible to rebind the window-manager actions in ~/.gntrc, eg:
[GntWM::binding] a-n = window-next a-p = window-prev a-c = window-close a-w = window-list a-d = dump-screen a-, = shift-left a-. = shift-right a-a = action-list a-m = start-move a-r = start-resize a-q = wm-quit a-l = refresh-screen a-s = workspace-list a-t = window-tag a-T = place-tagged a-C = toggle-clipboard a-/ = help-for-widget a-c-j = window-scroll-down a-c-k = window-scroll-up # The following action is still incomplete, and doesn't have a default binding # switch-window-n # Other actions: window-next-urgent, window-prev-urgent
# For the sample custom window manager [GntS::binding] a-b = toggle-buddylist
# For the irssi window manager [Irssi::binding] a-L = move-right a-H = move-left a-J = move-down a-K = move-up
Conversation Commands There are a few helpful commands in addition to the regular commands. You can use these from any conversation to access other windows.
accounts for the accounts window.
buddylist for the buddylist.
debugwin for the debug window.
plugins for the plugins window.
prefs  for the preferences window.
status for the status window.
FAQ for finch is located at http://developer.pidgin.im/wiki/Using%20Finch
Known bugs are listed at http://developer.pidgin.im/query?status=new&status=assigned&status=reopened&component=finch+%28gnt%2Fncurses%29&order=priority
Before sending a bug report, please verify that you have the latest version of finch and libpurple.  Many bugs (major and minor) are fixed at each release, and if yours is out of date, the problem may already have been solved.
If you fix a bug in finch (or otherwise enhance it), please submit a patch (using mtn diff > my.diff against the latest version from the Monotone repository) at http://developer.pidgin.im/simpleticket
You are also encouraged to drop by at #pidgin on irc.libera.chat to discuss development.
http://pidgin.im/ http://developer.pidgin.im/ purple-remote(1) pidgin(1)
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
Sadrul Habib Chowdhury <sadrul@users.sourceforge.net>
This manpage was written by Sadrul Habib Chowdhury <sadrul@users.sourceforge.net> and Dennis Ristuccia <dennis@dennisr.net>.
LASTLOG(8)                 System Management Commands                 LASTLOG(8)
lastlog - reports the most recent login of all users or of a given user
lastlog [options]
lastlog formats and prints the contents of the last login log /var/log/lastlog file. The login-name, port, and last login time will be printed. The default (no flags) causes lastlog entries to be printed, sorted by their order in /etc/passwd.
The options which apply to the lastlog command are:
-b, --before DAYS Print only lastlog records older than DAYS.
-C, --clear Clear lastlog record of a user. This option can be used only together with -u (--user)).
-S, --set Set lastlog record of a user to the current time. This option can be used only together with -u (--user)).
-t, --time DAYS Print the lastlog records more recent than DAYS.
-u, --user LOGIN|RANGE Print the lastlog record of the specified user(s).
The users can be specified by a login name, a numerical user ID, or a RANGE of users. This RANGE of users can be specified with a min and max values (UID_MIN-UID_MAX), a max value (-UID_MAX), or a min value (UID_MIN-).
If the user has never logged in the message ** Never logged in** will be displayed instead of the port and time.
Only the entries for the current users of the system will be displayed. Other entries may exist for users that were deleted previously.
The lastlog file is a database which contains info on the last login of each user. You should not rotate it. It is a sparse file, so its size on the disk is usually much smaller than the one shown by "ls -l" (which can indicate a really big file if you have in passwd users with a high UID). You can display its real size with "ls -s".
/var/log/lastlog Database times of previous user logins.
Large gaps in UID numbers will cause the lastlog program to run longer with no output to the screen (i.e. if in lastlog database there is no entries for users with UID between 170 and 800 lastlog will appear to hang as it processes entries with UIDs 171-799).
STEAM(6)                          Games Manual                          STEAM(6)
steam - a launcher for the Steam client from Valve Corporation
steam [ -options ]
Steam is a software distribution service focused on games, automatic updates, achievements, and social features for gamers.
This program currently has no documented commandline options.
The steam launcher script is written and maintained by Valve Corporation.
GIT-STASH(1)                       Git Manual                       GIT-STASH(1)
git-stash - Stash the changes in a dirty working directory away
git stash list [<log-options>] git stash show [-u|--include-untracked|--only-untracked] [<diff-options>] [<stash>] git stash drop [-q|--quiet] [<stash>] git stash ( pop | apply ) [--index] [-q|--quiet] [<stash>] git stash branch <branchname> [<stash>] git stash [push [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet] [-u|--include-untracked] [-a|--all] [-m|--message <message>] [--pathspec-from-file=<file> [--pathspec-file-nul]] [--] [<pathspec>...]] git stash clear git stash create [<message>] git stash store [-m|--message <message>] [-q|--quiet] <commit>
Use git stash when you want to record the current state of the working directory and the index, but want to go back to a clean working directory. The command saves your local modifications away and reverts the working directory to match the HEAD commit.
The modifications stashed away by this command can be listed with git stash list, inspected with git stash show, and restored (potentially on top of a different commit) with git stash apply. Calling git stash without any arguments is equivalent to git stash push. A stash is by default listed as "WIP on branchname ...", but you can give a more descriptive message on the command line when you create one.
The latest stash you created is stored in refs/stash; older stashes are found in the reflog of this reference and can be named using the usual reflog syntax (e.g. stash@{0} is the most recently created stash, stash@{1} is the one before it, stash@{2.hours.ago} is also possible). Stashes may also be referenced by specifying just the stash index (e.g. the integer n is equivalent to stash@{n}).
push [-p|--patch] [-k|--[no-]keep-index] [-u|--include-untracked] [-a|--all] [-q|--quiet] [-m|--message <message>] [--pathspec-from-file=<file> [--pathspec-file-nul]] [--] [<pathspec>...] Save your local modifications to a new stash entry and roll them back to HEAD (in the working tree and in the index). The <message> part is optional and gives the description along with the stashed state.
For quickly making a snapshot, you can omit "push". In this mode, non-option arguments are not allowed to prevent a misspelled subcommand from making an unwanted stash entry. The two exceptions to this are stash -p which acts as alias for stash push -p and pathspec elements, which are allowed after a double hyphen -- for disambiguation.
save [-p|--patch] [-k|--[no-]keep-index] [-u|--include-untracked] [-a|--all] [-q|--quiet] [<message>] This option is deprecated in favour of git stash push. It differs from "stash push" in that it cannot take pathspec. Instead, all non-option arguments are concatenated to form the stash message.
list [<log-options>] List the stash entries that you currently have. Each stash entry is listed with its name (e.g.  stash@{0} is the latest entry, stash@{1} is the one before, etc.), the name of the branch that was current when the entry was made, and a short description of the commit the entry was based on.
stash@{0}: WIP on submit: 6ebd0e2... Update git-stash documentation stash@{1}: On master: 9cc0589... Add git-stash
The command takes options applicable to the git log command to control what is shown and how. See git-log(1).
show [-u|--include-untracked|--only-untracked] [<diff-options>] [<stash>] Show the changes recorded in the stash entry as a diff between the stashed contents and the commit back when the stash entry was first created. By default, the command shows the diffstat, but it will accept any format known to git diff (e.g., git stash show -p stash@{1} to view the second most recent entry in patch form). If no <diff-option> is provided, the default behavior will be given by the stash.showStat, and stash.showPatch config variables. You can also use stash.showIncludeUntracked to set whether --include-untracked is enabled by default.
pop [--index] [-q|--quiet] [<stash>] Remove a single stashed state from the stash list and apply it on top of the current working tree state, i.e., do the inverse operation of git stash push. The working directory must match the index.
Applying the state can fail with conflicts; in this case, it is not removed from the stash list. You need to resolve the conflicts by hand and call git stash drop manually afterwards.
apply [--index] [-q|--quiet] [<stash>] Like pop, but do not remove the state from the stash list. Unlike pop, <stash> may be any commit that looks like a commit created by stash push or stash create.
branch <branchname> [<stash>] Creates and checks out a new branch named <branchname> starting from the commit at which the <stash> was originally created, applies the changes recorded in <stash> to the new working tree and index. If that succeeds, and <stash> is a reference of the form stash@{<revision>}, it then drops the <stash>.
This is useful if the branch on which you ran git stash push has changed enough that git stash apply fails due to conflicts. Since the stash entry is applied on top of the commit that was HEAD at the time git stash was run, it restores the originally stashed state with no conflicts.
clear Remove all the stash entries. Note that those entries will then be subject to pruning, and may be impossible to recover (see Examples below for a possible strategy).
drop [-q|--quiet] [<stash>] Remove a single stash entry from the list of stash entries.
create Create a stash entry (which is a regular commit object) and return its object name, without storing it anywhere in the ref namespace. This is intended to be useful for scripts. It is probably not the command you want to use; see "push" above.
store Store a given stash created via git stash create (which is a dangling merge commit) in the stash ref, updating the stash reflog. This is intended to be useful for scripts. It is probably not the command you want to use; see "push" above.
-a, --all This option is only valid for push and save commands.
All ignored and untracked files are also stashed and then cleaned up with git clean.
-u, --include-untracked, --no-include-untracked When used with the push and save commands, all untracked files are also stashed and then cleaned up with git clean.
When used with the show command, show the untracked files in the stash entry as part of the diff.
--only-untracked This option is only valid for the show command.
Show only the untracked files in the stash entry as part of the diff.
--index This option is only valid for pop and apply commands.
Tries to reinstate not only the working tree’s changes, but also the index’s ones. However, this can fail, when you have conflicts (which are stored in the index, where you therefore can no longer apply the changes as they were originally).
-k, --keep-index, --no-keep-index This option is only valid for push and save commands.
All changes already added to the index are left intact.
-p, --patch This option is only valid for push and save commands.
Interactively select hunks from the diff between HEAD and the working tree to be stashed. The stash entry is constructed such that its index state is the same as the index state of your repository, and its worktree contains only the changes you selected interactively. The selected changes are then rolled back from your worktree. See the “Interactive Mode” section of git-add(1) to learn how to operate the --patch mode.
The --patch option implies --keep-index. You can use --no-keep-index to override this.
--pathspec-from-file=<file> This option is only valid for push command.
Pathspec is passed in <file> instead of commandline args. If <file> is exactly - then standard input is used. Pathspec elements are separated by LF or CR/LF. Pathspec elements can be quoted as explained for the configuration variable core.quotePath (see git- config(1)). See also --pathspec-file-nul and global --literal-pathspecs.
--pathspec-file-nul This option is only valid for push command.
Only meaningful with --pathspec-from-file. Pathspec elements are separated with NUL character and all other characters are taken literally (including newlines and quotes).
-q, --quiet This option is only valid for apply, drop, pop, push, save, store commands.
Quiet, suppress feedback messages.
-- This option is only valid for push command.
Separates pathspec from options for disambiguation purposes.
<pathspec>... This option is only valid for push command.
The new stash entry records the modified states only for the files that match the pathspec. The index entries and working tree files are then rolled back to the state in HEAD only for these files, too, leaving files that do not match the pathspec intact.
<stash> This option is only valid for apply, branch, drop, pop, show commands.
A reference of the form stash@{<revision>}. When no <stash> is given, the latest stash is assumed (that is, stash@{0}).
A stash entry is represented as a commit whose tree records the state of the working directory, and its first parent is the commit at HEAD when the entry was created. The tree of the second parent records the state of the index when the entry is made, and it is made a child of the HEAD commit. The ancestry graph looks like this:
.----W /    / -----H----I
where H is the HEAD commit, I is a commit that records the state of the index, and W is a commit that records the state of the working tree.
Pulling into a dirty tree When you are in the middle of something, you learn that there are upstream changes that are possibly relevant to what you are doing. When your local changes do not conflict with the changes in the upstream, a simple git pull will let you move forward.
However, there are cases in which your local changes do conflict with the upstream changes, and git pull refuses to overwrite your changes. In such a case, you can stash your changes away, perform a pull, and then unstash, like this:
$ git pull ... file foobar not up to date, cannot merge. $ git stash $ git pull $ git stash pop
Interrupted workflow When you are in the middle of something, your boss comes in and demands that you fix something immediately. Traditionally, you would make a commit to a temporary branch to store your changes away, and return to your original branch to make the emergency fix, like this:
# ... hack hack hack ... $ git switch -c my_wip $ git commit -a -m "WIP" $ git switch master $ edit emergency fix $ git commit -a -m "Fix in a hurry" $ git switch my_wip $ git reset --soft HEAD^ # ... continue hacking ...
You can use git stash to simplify the above, like this:
# ... hack hack hack ... $ git stash $ edit emergency fix $ git commit -a -m "Fix in a hurry" $ git stash pop # ... continue hacking ...
Testing partial commits You can use git stash push --keep-index when you want to make two or more commits out of the changes in the work tree, and you want to test each change before committing:
# ... hack hack hack ... $ git add --patch foo            # add just first part to the index $ git stash push --keep-index    # save all other changes to the stash $ edit/build/test first part $ git commit -m 'First part'     # commit fully tested change $ git stash pop                  # prepare to work on all other changes # ... repeat above five steps until one commit remains ... $ edit/build/test remaining parts $ git commit foo -m 'Remaining parts'
Recovering stash entries that were cleared/dropped erroneously If you mistakenly drop or clear stash entries, they cannot be recovered through the normal safety mechanisms. However, you can try the following incantation to get a list of stash entries that are still in your repository, but not reachable any more:
git fsck --unreachable | grep commit | cut -d\  -f3 | xargs git log --merges --no-walk --grep=WIP
git-checkout(1), git-commit(1), git-reflog(1), git-reset(1), git- switch(1)
VISUDO(8)                  BSD System Manager's Manual                 VISUDO(8)
visudo — edit the sudoers file
visudo [-chqsV] [[-f] sudoers]
visudo edits the sudoers file in a safe fashion, analogous to vipw(8). visudo locks the sudoers file against multiple simultaneous edits, performs basic validity checks, and checks for syntax errors before installing the edited file.  If the sudoers file is currently being edited you will receive a message to try again later.
visudo parses the sudoers file after editing and will not save the changes if there is a syntax error.  Upon finding an error, visudo will print a message stating the line number(s) where the error occurred and the user will receive the “What now?” prompt.  At this point the user may enter ‘e’ to re-edit the sudoers file, ‘x’ to exit without saving the changes, or ‘Q’ to quit and save changes.  The ‘Q’ option should be used with extreme caution because if visudo believes there to be a syntax error, so will sudo and no one will be able to run sudo again until the error is fixed.  If ‘e’ is typed to edit the sudoers file after a syntax error has been detected, the cursor will be placed on the line where the error occurred (if the editor supports this feature).
There are two sudoers settings that determine which editor visudo will run.
editor    A colon (‘:’) separated list of editors allowed to be used with visudo.  visudo will choose the editor that matches the user's SUDO_EDITOR, VISUAL or EDITOR environment variable if possible, or the first editor in the list that exists and is executable. Note that sudo does not preserve the SUDO_EDITOR, VISUAL or EDITOR environment variables unless they are present in the env_keep list or the env_reset option is disabled in the sudoers file.  The default editor path is ~ which can be set at compile time via the --with-editor configure option.
env_editor If set, visudo will use the value of the SUDO_EDITOR, VISUAL or EDITOR environment variables before falling back on the default editor list.  Note that visudo is typically run as root so this option may allow a user with visudo privileges to run arbitrary commands as root without logging.  An alternative is to place a colon-separated list of “safe” editors int the editor variable. visudo will then only use SUDO_EDITOR, VISUAL or EDITOR if they match a value specified in editor.  If the env_reset flag is enabled, the SUDO_EDITOR, VISUAL and/or EDITOR environment variables must be present in the env_keep list for the env_editor flag to function when visudo is invoked via sudo.  The default value is on, which can be set at compile time via the --with-env-editor configure option.
-c, --check Enable check-only mode.  The existing sudoers file (and any other files it includes) will be checked for syntax errors.  If the path to the sudoers file was not specified, visudo will also check the file owner and mode.  A message will be printed to the standard output describing the status of sudoers unless the -q option was specified.  If the check completes successfully, visudo will exit with a value of 0.  If an error is encountered, visudo will exit with a value of 1.
-f sudoers, --file=sudoers Specify an alternate sudoers file location, see below.  As of version 1.8.27, the sudoers path can be specified without using the -f option.
-h, --help  Display a short help message to the standard output and exit.
-q, --quiet Enable quiet mode.  In this mode details about syntax errors are not printed.  This option is only useful when combined with the -c option.
-s, --strict Enable strict checking of the sudoers file.  If an alias is referenced but not actually defined or if there is a cycle in an alias, visudo will consider this a syntax error.  Note that it is not possible to differentiate between an alias and a host name or user name that consists solely of uppercase letters, digits, and the underscore (‘_’) character.
-V, --version Print the visudo and sudoers grammar versions and exit.
A sudoers file may be specified instead of the default, /etc/sudoers.  The temporary file used is the specified sudoers file with “.tmp” appended to it.  In check-only mode only, ‘-’ may be used to indicate that sudoers will be read from the standard input.  Because the policy is evaluated in its entirety, it is not sufficient to check an individual sudoers include file for syntax errors.
Debugging and sudoers plugin arguments visudo versions 1.8.4 and higher support a flexible debugging framework that is configured via Debug lines in the sudo.conf(5) file.
Starting with sudo 1.8.12, visudo will also parse the arguments to the sudoers plugin to override the default sudoers path name, UID, GID and file mode.  These arguments, if present, should be listed after the path to the plugin (i.e., after sudoers.so).  Multiple arguments may be specified, separated by white space.  For example:
Plugin sudoers_policy sudoers.so sudoers_mode=0400
The following arguments are supported:
sudoers_file=pathname The sudoers_file argument can be used to override the default path to the sudoers file.
sudoers_uid=uid The sudoers_uid argument can be used to override the default owner of the sudoers file.  It should be specified as a numeric user-ID.
sudoers_gid=gid The sudoers_gid argument can be used to override the default group of the sudoers file.  It must be specified as a numeric group-ID (not a group name).
sudoers_mode=mode The sudoers_mode argument can be used to override the default file mode for the sudoers file.  It should be specified as an octal value.
For more information on configuring sudo.conf(5), please refer to its manual.
The following environment variables may be consulted depending on the value of the editor and env_editor sudoers settings:
SUDO_EDITOR      Invoked by visudo as the editor to use
VISUAL           Used by visudo if SUDO_EDITOR is not set
EDITOR           Used by visudo if neither SUDO_EDITOR nor VISUAL is set
/etc/sudo.conf            Sudo front end configuration
/etc/sudoers              List of who can run what
/etc/sudoers.tmp          Default temporary file used by visudo
In addition to reporting sudoers syntax errors, visudo may produce the following messages:
sudoers file busy, try again later. Someone else is currently editing the sudoers file.
/etc/sudoers: Permission denied You didn't run visudo as root.
you do not exist in the passwd database Your user-ID does not appear in the system passwd database.
Warning: {User,Runas,Host,Cmnd}_Alias referenced but not defined Either you are trying to use an undeclared {User,Runas,Host,Cmnd}_Alias or you have a user or host name listed that consists solely of uppercase letters, digits, and the underscore (‘_’) character.  In the latter case, you can ignore the warnings (sudo will not complain).  The message is prefixed with the path name of the sudoers file and the line number where the undefined alias was used.  In -s (strict) mode these are errors, not warnings.
Warning: unused {User,Runas,Host,Cmnd}_Alias The specified {User,Runas,Host,Cmnd}_Alias was defined but never used.  The message is prefixed with the path name of the sudoers file and the line number where the unused alias was defined.  You may wish to comment out or remove the unused alias.
Warning: cycle in {User,Runas,Host,Cmnd}_Alias The specified {User,Runas,Host,Cmnd}_Alias includes a reference to itself, either directly or through an alias it includes.  The message is prefixed with the path name of the sudoers file and the line number where the cycle was detected.  This is only a warning unless visudo is run in -s (strict) mode as sudo will ignore cycles when parsing the sudoers file.
unknown defaults entry "name" The sudoers file contains a Defaults setting not recognized by visudo.
vi(1), sudo.conf(5), sudoers(5), sudo(8), vipw(8)
Many people have worked on sudo over the years; this version consists of code written primarily by:
Todd C. Miller
See the CONTRIBUTORS file in the sudo distribution (https://www.sudo.ws/contributors.html) for an exhaustive list of people who have contributed to sudo.
There is no easy way to prevent a user from gaining a root shell if the editor used by visudo allows shell escapes.
If you feel you have found a bug in visudo, please submit a bug report at https://bugzilla.sudo.ws/
Limited free support is available via the sudo-users mailing list, see https://www.sudo.ws/mailman/listinfo/sudo-users to subscribe or search the archives.
visudo is provided “AS IS” and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed.  See the LICENSE file distributed with sudo or https://www.sudo.ws/license.html for complete details.
DGET(1)                                                                  DGET(1)
dget - Download Debian source and binary packages
dget [options] URL ... dget [options] [--all] package[=version] ...
dget downloads Debian packages.  In the first form, dget fetches the requested URLs.  If this is a .dsc or .changes file, then dget acts as a source-package aware form of wget: it also fetches any files referenced in the .dsc/.changes file.  The downloaded source is then checked with dscverify and, if successful, unpacked by dpkg-source.
In the second form, dget downloads a binary package (i.e., a .deb file) from the Debian mirror configured in /etc/apt/sources.list(.d).  Unlike apt-get install -d, it does not require root privileges, writes to the current directory, and does not download dependencies.  If a version number is specified, this version of the package is requested.  With --all, the list of all binaries for the source package package is extracted from the output of "apt-cache showsrc package".
In both cases dget is capable of getting several packages and/or URLs at once.
(Note that .udeb packages used by debian-installer are located in separate packages files from .deb packages. In order to use .udebs with dget, you will need to have configured apt to use a packages file for component/debian-installer).
Before downloading files listed in .dsc and .changes files, and before downloading binary packages, dget checks to see whether any of these files already exist.  If they do, then their md5sums are compared to avoid downloading them again unnecessarily.  dget also looks for matching files in /var/cache/apt/archives and directories given by the --path option or specified in the configuration files (see below).  Finally, if downloading (.orig).tar.gz or .diff.gz files fails, dget consults apt-get source --print-uris.  Download backends used are curl and wget, looked for in that order.
dget was written to make it easier to retrieve source packages from the web for sponsor uploads.  For checking the package with debdiff, the last binary version is available via dget package, the last source version via apt-get source package.
-a, --all Interpret package as a source package name, and download all binaries as found in the output of "apt-cache showsrc package".  If package is arch-qualified, then only binary packages which are "Arch: all", "Arch: any", or "Arch: $arch" will be downloaded.
-b, --backup Move files that would be overwritten to ./backup.
-q, --quiet Suppress wget/curl non-error output.
-d, --download-only Do not run dpkg-source -x on the downloaded source package.  This can only be used with the first method of calling dget.
-x, --extract Run dpkg-source -x on the downloaded source package to unpack it. This option is the default and can only be used with the first method of calling dget.
-u, --allow-unauthenticated Do not attempt to verify the integrity of downloaded source packages using dscverify.
--build Run dpkg-buildpackage -b -uc on the downloaded source package.
--path DIR[:DIR ...] In addition to /var/cache/apt/archives, dget uses the colon-separated list given as argument to --path to find files with a matching md5sum.  For example: "--path /srv/pbuilder/result:/home/cb/UploadQueue".  If DIR is empty (i.e., "--path ''" is specified), then any previously listed directories or directories specified in the configuration files will be ignored. This option may be specified multiple times, and all of the directories listed will be searched; hence, the above example could have been written as: "--path /srv/pbuilder/result --path /home/cb/UploadQueue".
--insecure Allow SSL connections to untrusted hosts.
--no-cache Bypass server-side HTTP caches by sending a Pragma: no-cache header.
The two configuration files /etc/devscripts.conf and ~/.devscripts are sourced by a shell in that order to set configuration variables.  Command line options can be used to override configuration file settings. Environment variable settings are ignored for this purpose.  The currently recognised variable is:
DGET_PATH This can be set to a colon-separated list of directories in which to search for files in addition to the default /var/cache/apt/archives. It has the same effect as the --path command line option.  It is not set by default.
DGET_UNPACK Set to 'no' to disable extracting downloaded source packages. Default is 'yes'.
DGET_VERIFY Set to 'no' to disable checking signatures of downloaded source packages.  Default is 'yes'.
Download all .deb files for the previous version of a package and run debdiff on them:
dget --all mypackage=1.2-1 debdiff --from *_1.2-1_*.deb --to *_1.2-2_*.deb
dget package should be implemented in apt-get install -d.
Before devscripts version 2.10.17, the default was not to extract the downloaded source. Set DGET_UNPACK=no to revert to the old behaviour.
This program is Copyright (C) 2005-2013 by Christoph Berg <myon@debian.org>.  Modifications are Copyright (C) 2005-06 by Julian Gilbey <jdg@debian.org>.
This program is licensed under the terms of the GPL, either version 2 of the License, or (at your option) any later version.
apt-get(1), curl(1), debcheckout(1), debdiff(1), dpkg-source(1), wget(1)
CopyQ(1)                     General Commands Manual                    CopyQ(1)
CopyQ - Clipboard Manager with Advanced Features
copyq [COMMAND]
CopyQ is advanced clipboard manager with editing and scripting features. It monitors system clipboard and saves its content in customized tabs. Saved clipboard can be later copied and pasted directly into any application.
Starts server if no command is specified.
show [NAME] Show main window and optionally open tab with given name.
hide   Hide main window.
toggle Show or hide main window.
menu   Open context menu.
exit   Exit server.
disable, enable Disable or enable clipboard content storing.
clipboard [MIME] Print clipboard content.
selection [MIME] Print X11 selection content.
paste  Paste clipboard to current window (may not work with some applications).
copy TEXT Set clipboard text.
copy MIME DATA [MIME DATA]... Set clipboard content.
count  Print amount of items in current tab.
select [ROW=0] Copy item in the row to clipboard.
next   Copy next item from current tab to clipboard.
previous Copy previous item from current tab to clipboard.
add TEXT... Add text into clipboard.
insert ROW TEXT Insert text into given row.
remove [ROWS=0...] Remove items in given rows.
edit [ROW=-1...] Edit items or edit new one.  Value -1 is for current text in clipboard.
separator SEPARATOR Set separator for items on output.
read [MIME|ROW]... Print raw data of clipboard or item in row.
write [ROW=0] MIME DATA [MIME DATA]... Write raw data to given row.
action [ROWS=0...] Show action dialog.
action [ROWS=0...] [PROGRAM [SEPARATOR=\n]] Run PROGRAM on item text in the rows.  Use %1 in PROGRAM to pass text as argument.
popup TITLE MESSAGE [TIME=8000] Show tray popup message for TIME milliseconds.
tab    List available tab names.
tab NAME [COMMAND] Run command on tab with given name.  Tab is created if it doesn't exist.  Default is the first tab.
removetab NAME Remove tab.
renametab NAME NEW_NAME Rename tab.
exporttab FILE_NAME Export items to file.
importtab FILE_NAME Import items from file.
config List all options.
config OPTION Get option value.
config OPTION VALUE Set option value.
eval, -e [SCRIPT] [ARGUMENTS]... Evaluate ECMAScript program.  Arguments are accessible using with "arguments[0..N]".
session, -s, --session SESSION Starts or connects to application instance with given session name.
help, -h, --help [COMMAND]... Print help for COMMAND or all commands.
Use dash argument (-) to read data from standard input.
Use double-dash argument (--) to read all following arguments without expanding escape sequences (i.e. \n, \t and others).
Use ? for MIME to print available MIME types (default is "text/plain").
Insert some texts to the history: copyq add "first item" "second item" "third item"
Print content of the first three items: copyq read 0 1 2 copyq separator "," read 0 1 2
Show current clipboard content: copyq clipboard copyq clipboard text/html copyq clipboard \? # lists formats in clipboard
Copy text to the clipboard: copyq copy "Some Text"
Load file content into clipboard: copyq copy - < file.txt copyq copy text/html < index.html copyq copy image/jpeg - < image.jpg
Create an image items: copyq write image/gif - < image.gif copyq write image/svg - < image.svg
https://copyq.readthedocs.io/