A fork of Git containing Microsoft-specific patches.
Перейти к файлу
Junio C Hamano 5f586f55a0 Merge branch 'ps/config-env-option-with-separate-value'
"git --config-env var=val cmd" weren't accepted (only
--config-env=var=val was).

* ps/config-env-option-with-separate-value:
  git: support separate arg for `--config-env`'s value
  git.txt: fix synopsis of `--config-env` missing the equals sign
2021-05-07 12:47:37 +09:00
.github cmake(install): include vcpkg dlls 2021-03-29 13:49:04 -07:00
Documentation Merge branch 'ps/config-env-option-with-separate-value' 2021-05-07 12:47:37 +09:00
block-sha1 block-sha1: drop trailing semicolon from macro definition 2021-03-17 10:20:01 -07:00
builtin Merge branch 'mt/parallel-checkout-part-2' 2021-04-30 13:50:26 +09:00
ci Merge branch 'en/ort-readiness' 2021-04-16 13:53:34 -07:00
compat Merge branch 'js/access-nul-emulation-on-windows' 2021-04-20 17:23:37 -07:00
contrib Merge branch 'vs/completion-with-set-u' 2021-04-30 13:50:27 +09:00
ewah use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
git-gui Merge https://github.com/prati0100/git-gui 2021-03-04 12:38:50 -08:00
gitk-git
gitweb gitweb: add "e-mail privacy" feature to redact e-mail addresses 2021-04-08 15:54:26 -07:00
mergetools
negotiator use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
perl git-send-email: Respect core.hooksPath setting 2021-03-23 15:02:52 -07:00
po l10n: zh_CN: for git v2.31.0 l10n round 1 and 2 2021-03-15 00:05:25 +08:00
ppc
refs refs: print errno for read_raw_ref if GIT_TRACE_REFS is set 2021-04-12 14:42:37 -07:00
sha1collisiondetection@855827c583
sha1dc
sha256
t Merge branch 'ps/config-env-option-with-separate-value' 2021-05-07 12:47:37 +09:00
templates
trace2
xdiff
.cirrus.yml
.clang-format
.editorconfig
.gitattributes
.gitignore parallel-checkout: make it truly parallel 2021-04-19 11:57:05 -07:00
.gitmodules
.mailmap Add entry for Ramkumar Ramachandra 2021-03-08 09:56:34 -08:00
.travis.yml
.tsan-suppressions
CODE_OF_CONDUCT.md
COPYING
GIT-VERSION-GEN Git 2.31.1 2021-03-26 14:49:41 -07:00
INSTALL INSTALL: note on using Asciidoctor to build doc 2021-03-19 10:49:20 -07:00
LGPL-2.1
Makefile Merge branch 'mt/parallel-checkout-part-2' 2021-04-30 13:50:26 +09:00
README.md
RelNotes Git 2.31.1 2021-03-26 14:49:41 -07:00
SECURITY.md SECURITY: describe how to report vulnerabilities 2021-03-27 15:13:02 -07:00
abspath.c
aclocal.m4
add-interactive.c Merge branch 'rs/xcalloc-takes-nelem-first' 2021-03-19 15:25:39 -07:00
add-interactive.h
add-patch.c
advice.c
advice.h
alias.c
alias.h
alloc.c
alloc.h
apply.c git-apply: allow simultaneous --cached and --3way options 2021-04-07 22:20:33 -07:00
apply.h
archive-tar.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
archive-zip.c
archive.c Merge branch 'ab/read-tree' 2021-03-30 14:35:37 -07:00
archive.h archive: expand only a single %(describe) per archive 2021-03-11 13:22:44 -08:00
attr.c Merge branch 'ds/sparse-index-protections' 2021-04-30 13:50:26 +09:00
attr.h *: remove 'const' qualifier for struct index_state 2021-04-14 13:46:00 -07:00
banned.h
base85.c
bisect.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
bisect.h
blame.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
blame.h
blob.c
blob.h
bloom.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
bloom.h
branch.c merge-ort: write $GIT_DIR/AUTO_MERGE whenever we hit a conflict 2021-03-20 12:35:40 -07:00
branch.h
builtin.h parallel-checkout: make it truly parallel 2021-04-19 11:57:05 -07:00
bulk-checkin.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
bulk-checkin.h
bundle.c
bundle.h
cache-tree.c Merge branch 'ds/sparse-index-protections' 2021-04-30 13:50:26 +09:00
cache-tree.h
cache.h Merge branch 'ds/sparse-index-protections' 2021-04-30 13:50:26 +09:00
chdir-notify.c
chdir-notify.h
check-builtins.sh
check_bindir
checkout.c
checkout.h
chunk-format.c
chunk-format.h
color.c
color.h
column.c
column.h
combine-diff.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
command-list.txt
commit-graph.c Merge branch 'ds/commit-graph-generation-config' 2021-03-22 14:00:23 -07:00
commit-graph.h
commit-reach.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
commit-reach.h
commit-slab-decl.h
commit-slab-impl.h
commit-slab.h
commit.c Merge branch 'cm/rebase-i-fixup-amend-reword' 2021-03-26 14:59:03 -07:00
commit.h Merge branch 'cm/rebase-i-fixup-amend-reword' 2021-03-26 14:59:03 -07:00
common-main.c
config.c config.c: remove last remnant of GIT_TEST_GETTEXT_POISON 2021-04-08 10:54:08 -07:00
config.h
config.mak.dev
config.mak.in
config.mak.uname Merge branch 'jh/simple-ipc' 2021-04-02 14:43:14 -07:00
configure.ac
connect.c
connect.h
connected.c
connected.h
convert.c Merge branch 'ds/sparse-index-protections' 2021-04-30 13:50:26 +09:00
convert.h Merge branch 'ds/sparse-index-protections' 2021-04-30 13:50:26 +09:00
copy.c
credential.c
credential.h
csum-file.c csum-file: make hashwrite() more readable 2021-03-26 14:32:45 -07:00
csum-file.h
ctype.c
daemon.c Merge branch 'rs/daemon-sanitize-dir-sep' 2021-04-08 13:23:26 -07:00
date.c
decorate.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
decorate.h
delta-islands.c
delta-islands.h
delta.h
detect-compiler
diff-delta.c
diff-lib.c fsmonitor: add assertion that fsmonitor is valid to check_removed 2021-03-18 13:31:13 -07:00
diff-merges.c diff-merges: introduce log.diffMerges config variable 2021-04-16 23:38:35 -07:00
diff-merges.h diff-merges: introduce log.diffMerges config variable 2021-04-16 23:38:35 -07:00
diff-no-index.c
diff.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
diff.h
diffcore-break.c
diffcore-delta.c
diffcore-order.c
diffcore-pickaxe.c
diffcore-rename.c Merge branch 'en/ort-perf-batch-10' 2021-04-16 13:53:33 -07:00
diffcore-rotate.c
diffcore.h Merge branch 'en/ort-perf-batch-10' 2021-04-16 13:53:33 -07:00
dir-iterator.c
dir-iterator.h
dir.c Merge branch 'ds/sparse-index-protections' 2021-04-30 13:50:26 +09:00
dir.h Merge branch 'ds/sparse-index-protections' 2021-04-30 13:50:26 +09:00
editor.c
entry.c Merge branch 'mt/parallel-checkout-part-2' 2021-04-30 13:50:26 +09:00
entry.h entry: add checkout_entry_ca() taking preloaded conv_attrs 2021-03-23 10:34:05 -07:00
environment.c
environment.h
exec-cmd.c
exec-cmd.h
fetch-negotiator.c
fetch-negotiator.h
fetch-pack.c Merge branch 'jt/fetch-pack-request-fix' 2021-04-20 17:23:36 -07:00
fetch-pack.h builtin/clone.c: add --reject-shallow option 2021-04-01 12:58:58 -07:00
fmt-merge-msg.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
fmt-merge-msg.h
fsck.c fetch-pack: use new fsck API to printing dangling submodules 2021-03-28 19:03:10 -07:00
fsck.h fetch-pack: use new fsck API to printing dangling submodules 2021-03-28 19:03:10 -07:00
fsmonitor.c Merge branch 'jh/fsmonitor-prework' 2021-03-19 15:25:37 -07:00
fsmonitor.h fsmonitor: add assertion that fsmonitor is valid to check_removed 2021-03-18 13:31:13 -07:00
fuzz-commit-graph.c
fuzz-pack-headers.c
fuzz-pack-idx.c
generate-cmdlist.sh
generate-configlist.sh
gettext.c
gettext.h
git-add--interactive.perl
git-archimport.perl
git-bisect.sh
git-compat-util.h Merge branch 'tb/precompose-prefix-simplify' 2021-04-13 15:28:51 -07:00
git-cvsexportcommit.perl
git-cvsimport.perl
git-cvsserver.perl
git-difftool--helper.sh
git-filter-branch.sh filter-branch: drop $_x40 glob 2021-03-10 14:16:58 -08:00
git-instaweb.sh
git-merge-octopus.sh
git-merge-one-file.sh
git-merge-resolve.sh
git-mergetool--lib.sh
git-mergetool.sh mergetool: do not enable hideResolved by default 2021-03-13 15:30:29 -08:00
git-p4.py
git-quiltimport.sh
git-rebase--preserve-merges.sh
git-request-pull.sh
git-send-email.perl git-send-email: improve --validate error output 2021-04-06 12:57:06 -07:00
git-sh-i18n.sh
git-sh-setup.sh
git-submodule.sh
git-svn.perl
git-web--browse.sh
git.c Merge branch 'ps/config-env-option-with-separate-value' 2021-05-07 12:47:37 +09:00
git.rc
gpg-interface.c
gpg-interface.h
graph.c
graph.h
grep.c Merge branch 'ab/grep-pcre2-allocfix' 2021-03-22 14:00:23 -07:00
grep.h
hash-lookup.c
hash-lookup.h
hash.h
hashmap.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
hashmap.h
help.c
help.h
hex.c
http-backend.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
http-fetch.c
http-push.c lookup_unknown_object(): take a repository argument 2021-04-13 13:18:46 -07:00
http-walker.c
http.c Merge branch 'cs/http-use-basic-after-failed-negotiate' 2021-03-30 14:35:37 -07:00
http.h
ident.c
imap-send.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
iterator.h
json-writer.c
json-writer.h
khash.h
kwset.c
kwset.h
levenshtein.c
levenshtein.h
line-log.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
line-log.h
line-range.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
line-range.h
linear-assignment.c
linear-assignment.h
list-objects-filter-options.c
list-objects-filter-options.h
list-objects-filter.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
list-objects-filter.h
list-objects.c
list-objects.h
list.h
ll-merge.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
ll-merge.h
lockfile.c
lockfile.h
log-tree.c format-patch: allow a non-integral version numbers 2021-03-23 12:49:47 -07:00
log-tree.h
ls-refs.c
ls-refs.h
mailinfo.c
mailinfo.h
mailmap.c Merge branch 'jk/open-dotgitx-with-nofollow' 2021-03-22 14:00:22 -07:00
mailmap.h
match-trees.c
mem-pool.c mem-pool: drop trailing semicolon from macro definition 2021-03-17 10:20:16 -07:00
mem-pool.h
merge-blobs.c
merge-blobs.h
merge-ort-wrappers.c
merge-ort-wrappers.h
merge-ort.c Merge branch 'ds/sparse-index-protections' 2021-04-30 13:50:26 +09:00
merge-ort.h
merge-recursive.c Merge branch 'ds/sparse-index-protections' 2021-04-30 13:50:26 +09:00
merge-recursive.h
merge.c
mergesort.c
mergesort.h
midx.c Merge branch 'tb/reverse-midx' 2021-04-08 13:23:25 -07:00
midx.h pack-revindex: write multi-pack reverse indexes 2021-04-01 13:07:37 -07:00
name-hash.c Merge branch 'ds/sparse-index-protections' 2021-04-30 13:50:26 +09:00
notes-cache.c
notes-cache.h
notes-merge.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
notes-merge.h
notes-utils.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
notes-utils.h
notes.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
notes.h
object-file.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
object-name.c
object-store.h
object.c lookup_unknown_object(): take a repository argument 2021-04-13 13:18:46 -07:00
object.h lookup_unknown_object(): take a repository argument 2021-04-13 13:18:46 -07:00
oid-array.c
oid-array.h
oidmap.c
oidmap.h
oidset.c
oidset.h
pack-bitmap-write.c
pack-bitmap.c Merge branch 'tb/pack-preferred-tips-to-give-bitmap' 2021-04-13 15:28:50 -07:00
pack-bitmap.h builtin/pack-objects.c: respect 'pack.preferBitmapTips' 2021-03-31 23:14:03 -07:00
pack-check.c
pack-objects.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
pack-objects.h
pack-revindex.c Merge branch 'tb/reverse-midx' 2021-04-08 13:23:25 -07:00
pack-revindex.h pack-revindex: read multi-pack reverse indexes 2021-04-01 13:07:37 -07:00
pack-write.c Merge branch 'tb/reverse-midx' 2021-04-08 13:23:25 -07:00
pack.h Merge branch 'tb/reverse-midx' 2021-04-08 13:23:25 -07:00
packfile.c is_promisor_object(): free tree buffer after parsing 2021-04-13 13:16:39 -07:00
packfile.h
pager.c
parallel-checkout.c parallel-checkout: support progress displaying 2021-04-19 11:57:05 -07:00
parallel-checkout.h parallel-checkout: support progress displaying 2021-04-19 11:57:05 -07:00
parse-options-cb.c
parse-options.c parse-options: don't leak alias help messages 2021-03-21 14:39:10 -07:00
parse-options.h parse-options: don't leak alias help messages 2021-03-21 14:39:10 -07:00
patch-delta.c
patch-ids.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
patch-ids.h
path.c merge-ort: write $GIT_DIR/AUTO_MERGE whenever we hit a conflict 2021-03-20 12:35:40 -07:00
path.h merge-ort: write $GIT_DIR/AUTO_MERGE whenever we hit a conflict 2021-03-20 12:35:40 -07:00
pathspec.c Merge branch 'ds/sparse-index-protections' 2021-04-30 13:50:26 +09:00
pathspec.h *: remove 'const' qualifier for struct index_state 2021-04-14 13:46:00 -07:00
pkt-line.c pkt-line: do not report packet write errors twice 2021-04-15 15:05:31 -07:00
pkt-line.h pkt-line: add options argument to read_packetized_to_strbuf() 2021-03-15 14:32:50 -07:00
preload-index.c
pretty.c Merge branch 'rs/pretty-describe' 2021-03-22 14:00:24 -07:00
pretty.h Merge branch 'rs/pretty-describe' 2021-03-22 14:00:24 -07:00
prio-queue.c
prio-queue.h
progress.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
progress.h
promisor-remote.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
promisor-remote.h
prompt.c
prompt.h
protocol.c
protocol.h
prune-packed.c
prune-packed.h
quote.c
quote.h
range-diff.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
range-diff.h
reachable.c
reachable.h
read-cache.c Merge branch 'ds/sparse-index-protections' 2021-04-30 13:50:26 +09:00
rebase-interactive.c
rebase-interactive.h
rebase.c
rebase.h
ref-filter.c Merge branch 'jk/ref-filter-segfault-fix' 2021-04-13 15:28:50 -07:00
ref-filter.h
reflog-walk.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
reflog-walk.h
refs.c lookup_unknown_object(): take a repository argument 2021-04-13 13:18:46 -07:00
refs.h
refspec.c
refspec.h
remote-curl.c
remote.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
remote.h
replace-object.c
replace-object.h
repo-settings.c sparse-index: add index.sparse config option 2021-03-30 12:57:47 -07:00
repository.c Merge branch 'ds/sparse-index-protections' 2021-04-30 13:50:26 +09:00
repository.h sparse-index: add index.sparse config option 2021-03-30 12:57:47 -07:00
rerere.c
rerere.h
reset.c
reset.h
resolve-undo.c Merge branch 'ds/sparse-index-protections' 2021-04-30 13:50:26 +09:00
resolve-undo.h
revision.c Merge branch 'ds/sparse-index-protections' 2021-04-30 13:50:26 +09:00
revision.h Merge branch 'zh/format-patch-fractional-reroll-count' 2021-04-02 14:43:14 -07:00
run-command.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
run-command.h
send-pack.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
send-pack.h
sequencer.c Merge branch 'en/ort-readiness' 2021-04-16 13:53:34 -07:00
sequencer.h sequencer: fix edit handling for cherry-pick and revert messages 2021-03-31 14:10:50 -07:00
serve.c
serve.h
server-info.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
setup.c macOS: precompose startup_info->prefix 2021-04-05 17:30:36 -07:00
sh-i18n--envsubst.c
sha1dc_git.c
sha1dc_git.h
shallow.c
shallow.h
shell.c
shortlog.h
sideband.c
sideband.h
sigchain.c
sigchain.h
simple-ipc.h simple-ipc: add Unix domain socket implementation 2021-03-22 11:52:54 -07:00
sparse-index.c sparse-index: expand_to_path() 2021-04-14 13:47:54 -07:00
sparse-index.h sparse-index: expand_to_path() 2021-04-14 13:47:54 -07:00
split-index.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
split-index.h
stable-qsort.c
strbuf.c
strbuf.h
streaming.c
streaming.h
string-list.c
string-list.h
strmap.c
strmap.h
strvec.c
strvec.h
sub-process.c
sub-process.h
submodule-config.c
submodule-config.h
submodule.c *: remove 'const' qualifier for struct index_state 2021-04-14 13:46:00 -07:00
submodule.h *: remove 'const' qualifier for struct index_state 2021-04-14 13:46:00 -07:00
symlinks.c checkout: don't follow symlinks when removing entries 2021-03-18 12:58:10 -07:00
tag.c
tag.h
tar.h
tempfile.c
tempfile.h
thread-utils.c
thread-utils.h
tmp-objdir.c
tmp-objdir.h
trace.c
trace.h
trace2.c
trace2.h
trailer.c Merge branch 'rs/xcalloc-takes-nelem-first' 2021-03-19 15:25:39 -07:00
trailer.h
transport-helper.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
transport-internal.h
transport.c Merge branch 'ow/push-quiet-set-upstream' 2021-04-30 13:50:25 +09:00
transport.h builtin/clone.c: add --reject-shallow option 2021-04-01 12:58:58 -07:00
tree-diff.c
tree-walk.c
tree-walk.h
tree.c tree.h API: simplify read_tree_recursive() signature 2021-03-20 16:09:26 -07:00
tree.h tree.h API: simplify read_tree_recursive() signature 2021-03-20 16:09:26 -07:00
unicode-width.h
unimplemented.sh
unix-socket.c unix-socket: disallow chdir() when creating unix domain sockets 2021-03-15 14:32:51 -07:00
unix-socket.h unix-socket: disallow chdir() when creating unix domain sockets 2021-03-15 14:32:51 -07:00
unix-stream-server.c unix-stream-server: create unix domain socket under lock 2021-03-15 14:32:51 -07:00
unix-stream-server.h unix-stream-server: create unix domain socket under lock 2021-03-15 14:32:51 -07:00
unpack-trees.c Merge branch 'mt/parallel-checkout-part-2' 2021-04-30 13:50:26 +09:00
unpack-trees.h stash show: teach --include-untracked and --only-untracked 2021-03-05 14:31:26 -08:00
upload-pack.c lookup_unknown_object(): take a repository argument 2021-04-13 13:18:46 -07:00
upload-pack.h
url.c
url.h
urlmatch.c
urlmatch.h
usage.c usage.c: don't copy/paste the same comment three times 2021-04-13 14:56:28 -07:00
userdiff.c Merge branch 'ab/userdiff-tests' 2021-04-20 17:23:34 -07:00
userdiff.h userdiff: add and use for_each_userdiff_driver() 2021-04-08 12:19:10 -07:00
utf8.c
utf8.h
varint.c
varint.h
version.c
version.h
versioncmp.c
walker.c lookup_unknown_object(): take a repository argument 2021-04-13 13:18:46 -07:00
walker.h
wildmatch.c
wildmatch.h
worktree.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
worktree.h
wrap-for-bin.sh
wrapper.c
write-or-die.c
ws.c
wt-status.c use CALLOC_ARRAY 2021-03-13 16:00:09 -08:00
wt-status.h
xdiff-interface.c
xdiff-interface.h
zlib.c

README.md

Build status

Git - fast, scalable, distributed revision control system

Git is a fast, scalable, distributed revision control system with an unusually rich command set that provides both high-level operations and full access to internals.

Git is an Open Source project covered by the GNU General Public License version 2 (some parts of it are under different licenses, compatible with the GPLv2). It was originally written by Linus Torvalds with help of a group of hackers around the net.

Please read the file INSTALL for installation instructions.

Many Git online resources are accessible from https://git-scm.com/ including full documentation and Git related tools.

See Documentation/gittutorial.txt to get started, then see Documentation/giteveryday.txt for a useful minimum set of commands, and Documentation/git-<commandname>.txt for documentation of each command. If git has been correctly installed, then the tutorial can also be read with man gittutorial or git help tutorial, and the documentation of each command with man git-<commandname> or git help <commandname>.

CVS users may also want to read Documentation/gitcvs-migration.txt (man gitcvs-migration or git help cvs-migration if git is installed).

The user discussion and development of Git take place on the Git mailing list -- everyone is welcome to post bug reports, feature requests, comments and patches to git@vger.kernel.org (read Documentation/SubmittingPatches for instructions on patch submission). To subscribe to the list, send an email with just "subscribe git" in the body to majordomo@vger.kernel.org. The mailing list archives are available at https://lore.kernel.org/git/, http://marc.info/?l=git and other archival sites.

Issues which are security relevant should be disclosed privately to the Git Security mailing list git-security@googlegroups.com.

The maintainer frequently sends the "What's cooking" reports that list the current status of various development topics to the mailing list. The discussion following them give a good reference for project status, development direction and remaining tasks.

The name "git" was given by Linus Torvalds when he wrote the very first version. He described the tool as "the stupid content tracker" and the name as (depending on your mood):

  • random three-letter combination that is pronounceable, and not actually used by any common UNIX command. The fact that it is a mispronunciation of "get" may or may not be relevant.
  • stupid. contemptible and despicable. simple. Take your pick from the dictionary of slang.
  • "global information tracker": you're in a good mood, and it actually works for you. Angels sing, and a light suddenly fills the room.
  • "goddamn idiotic truckload of sh*t": when it breaks