Git with broken hash generation to generate collisions between object IDs. Don't use this! https://undefinedbehavior.de/posts/commit-vandalism/
Go to file
Brandon Williams f08a5d42ea remote-curl: create copy of the service name
Make a copy of the service name being requested instead of relying on
the buffer pointed to by the passed in 'const char *' to remain
unchanged.

Currently, all service names are string constants, but a subsequent
patch will introduce service names from external sources.

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2018-03-15 12:01:09 -07:00
.github
block-sha1
builtin fetch-pack: perform a fetch using v2 2018-03-15 12:01:08 -07:00
ci travis-ci: use 'set -x' in 'ci/*' scripts for extra tracing output 2017-12-12 12:58:30 -08:00
compat Merge branch 'bp/fsmonitor' 2017-11-21 14:07:50 +09:00
contrib Merge branch 'ra/prompt-eread-fix' 2017-12-28 14:08:45 -08:00
Documentation transport-helper: introduce stateless-connect 2018-03-15 12:01:09 -07:00
ewah Replace Free Software Foundation address in license notices 2017-11-09 13:21:21 +09:00
git-gui Merge branch 'ls/git-gui-no-double-utf8-author-name' 2017-12-19 11:33:56 -08:00
gitk-git
gitweb Merge branch 'gc/gitweb-filetest-acl' 2017-11-06 14:24:30 +09:00
mergetools
perl Git/Packet.pm: use 'if' instead of 'unless' 2017-11-22 16:23:55 +09:00
po l10n: Update Catalan translation 2017-10-29 10:04:12 +08:00
ppc
refs Merge branch 'mh/tidy-ref-update-flags' 2017-11-15 12:14:29 +09:00
sha1collisiondetection@19d97bf5af
sha1dc
t connect: don't request v2 when pushing 2018-03-15 12:01:09 -07:00
templates fsmonitor: simplify determining the git worktree under Windows 2017-11-13 10:02:20 +09:00
vcs-svn
xdiff Merge branch 'jt/diff-anchored-patience' 2017-12-19 11:33:56 -08:00
.clang-format
.gitattributes
.gitignore serve: introduce git-serve 2018-03-15 12:01:08 -07:00
.gitmodules
.mailmap mailmap: use Kaartic Sivaraam's new address 2017-11-03 23:00:07 +09:00
.travis.yml travis-ci: move setting environment variables to 'ci/lib-travisci.sh' 2017-12-12 12:58:27 -08:00
.tsan-suppressions
abspath.c
aclocal.m4
advice.c Merge branch 'ls/editor-waiting-message' 2017-12-19 11:33:59 -08:00
advice.h Merge branch 'ls/editor-waiting-message' 2017-12-19 11:33:59 -08:00
alias.c
alloc.c
apply.c Merge branch 'rs/apply-inaccurate-eof-with-incomplete-line' into maint 2017-12-06 09:09:03 -08:00
apply.h
archive-tar.c
archive-zip.c
archive.c
archive.h
argv-array.c
argv-array.h
attr.c
attr.h
base85.c base85.c: have SP around arithmetic operators 2013-10-16 10:27:26 -07:00
bisect.c Merge branch 'mh/tidy-ref-update-flags' 2017-11-15 12:14:29 +09:00
bisect.h Merge branch 'ma/bisect-leakfix' 2017-11-15 12:14:28 +09:00
blame.c Merge branch 'bw/diff-opt-impl-to-bitfields' 2017-11-09 14:31:27 +09:00
blame.h blame: move entry prepend to libgit 2017-05-25 13:08:23 +09:00
blob.c
blob.h
branch.c Merge branch 'ks/branch-cleanup' 2017-12-27 11:16:25 -08:00
branch.h Merge branch 'ks/branch-cleanup' 2017-12-27 11:16:25 -08:00
builtin.h serve: introduce git-serve 2018-03-15 12:01:08 -07:00
bulk-checkin.c distinguish error versus short read from read_in_full() 2017-09-27 15:45:24 +09:00
bulk-checkin.h
bundle.c
bundle.h
cache-tree.c Merge branch 'ma/lockfile-fixes' 2017-11-06 13:11:21 +09:00
cache-tree.h
cache.h Merge branch 'ls/editor-waiting-message' 2017-12-19 11:33:59 -08:00
check_bindir
check-builtins.sh
check-racy.c
checkout.c checkout: factor out functions to new lib file 2017-11-27 09:48:06 +09:00
checkout.h checkout: factor out functions to new lib file 2017-11-27 09:48:06 +09:00
color.c refactor "dumb" terminal determination 2017-12-04 09:38:30 -08:00
color.h
column.c column: do not include pager.c 2017-10-24 10:19:06 +09:00
column.h
combine-diff.c Merge branch 'bw/diff-opt-impl-to-bitfields' 2017-11-09 14:31:27 +09:00
command-list.txt
commit-slab.h
commit.c reduce_heads: fix memory leaks 2017-11-08 11:34:00 +09:00
commit.h format: create pretty.h file 2017-12-12 10:39:43 -08:00
common-main.c
config.c Merge branch 'hm/config-parse-expiry-date' 2017-12-06 09:23:37 -08:00
config.h Merge branch 'hm/config-parse-expiry-date' 2017-12-06 09:23:37 -08:00
config.mak.in
config.mak.uname
configure.ac
connect.c connect: don't request v2 when pushing 2018-03-15 12:01:09 -07:00
connect.h fetch-pack: support shallow requests 2018-03-15 12:01:09 -07:00
connected.c
connected.h
convert.c Merge branch 'tb/check-crlf-for-safe-crlf' 2017-12-27 11:16:21 -08:00
convert.h
copy.c
COPYING
credential-cache--daemon.c
credential-cache.c
credential-store.c
credential.c
credential.h
csum-file.c
csum-file.h
ctype.c
daemon.c
date.c
decorate.c decorate: clean up and document API 2017-12-08 09:16:27 -08:00
decorate.h decorate: clean up and document API 2017-12-08 09:16:27 -08:00
delta.h
diff-delta.c
diff-lib.c Merge branch 'bc/hash-algo' 2017-12-13 13:28:54 -08:00
diff-no-index.c diff: make struct diff_flags members lowercase 2017-11-01 11:51:40 +09:00
diff.c Merge branch 'cc/skip-to-optional-val' 2017-12-28 14:08:46 -08:00
diff.h diff: support anchoring line(s) 2017-11-28 10:40:04 +09:00
diffcore-break.c
diffcore-delta.c
diffcore-order.c
diffcore-pickaxe.c diff: make struct diff_flags members lowercase 2017-11-01 11:51:40 +09:00
diffcore-rename.c diffcore-rename: make diff-tree -l0 mean -l<large> 2017-12-02 22:16:57 -08:00
diffcore.h
dir-iterator.c
dir-iterator.h
dir.c Merge branch 'jh/object-filtering' 2017-12-27 11:16:21 -08:00
dir.h Merge branch 'jh/object-filtering' 2017-12-27 11:16:21 -08:00
editor.c launch_editor(): indicate that Git waits for user input 2017-12-07 10:10:19 -08:00
entry.c Merge branch 'bp/fsmonitor' 2017-11-21 14:07:50 +09:00
environment.c Merge branch 'ar/unconfuse-three-dots' 2017-12-19 11:33:58 -08:00
exec_cmd.c git_extract_argv0_path: do nothing without RUNTIME_PREFIX 2017-09-07 09:41:14 +09:00
exec_cmd.h common-main: stop munging argv[0] path 2016-11-29 11:01:48 -08:00
fast-import.c
fetch-pack.c fetch-pack: support shallow requests 2018-03-15 12:01:09 -07:00
fetch-pack.h fetch-pack: perform a fetch using v2 2018-03-15 12:01:08 -07:00
fmt-merge-msg.h
fsck.c
fsck.h
fsmonitor.c fsmonitor: store fsmonitor bitmap before splitting index 2017-11-10 14:05:01 +09:00
fsmonitor.h fsmonitor: store fsmonitor bitmap before splitting index 2017-11-10 14:05:01 +09:00
generate-cmdlist.sh generate-cmdlist: avoid non-deterministic output 2017-11-22 14:56:30 +09:00
gettext.c
gettext.h
git-add--interactive.perl
git-archimport.perl
git-bisect.sh Merge branch 'sb/bisect-run-empty' 2017-11-15 12:14:36 +09:00
git-compat-util.h git-compat-util: introduce skip_to_optional_arg() 2017-12-11 16:10:12 -08:00
git-cvsexportcommit.perl
git-cvsimport.perl cvsimport: apply shell-quoting regex globally 2017-12-08 09:02:54 -08:00
git-cvsserver.perl
git-difftool--helper.sh
git-filter-branch.sh
git-instaweb.sh
git-merge-octopus.sh Merge branch 'ma/up-to-date' 2017-09-10 17:08:22 +09:00
git-merge-one-file.sh
git-merge-resolve.sh
git-mergetool--lib.sh
git-mergetool.sh
git-p4.py
git-parse-remote.sh
git-quiltimport.sh
git-rebase--am.sh rebase: use mboxrd format to avoid split errors 2017-11-18 12:30:16 +09:00
git-rebase--interactive.sh rebase -i -x: add exec commands via the rebase--helper 2017-12-05 10:20:51 -08:00
git-rebase--merge.sh
git-rebase.sh rebase: rebasing can also be done when HEAD is detached 2017-12-19 10:02:47 -08:00
git-remote-testgit.sh transport-helper: do not request symbolic refs to remote helpers 2015-01-21 22:46:59 -08:00
git-request-pull.sh
git-send-email.perl git-send-email: honor $PATH for sendmail binary 2017-11-28 10:14:30 +09:00
git-sh-i18n.sh
git-sh-setup.sh
git-stash.sh Merge branch 'ph/stash-save-m-option-fix' 2017-12-06 09:23:43 -08:00
git-submodule.sh
git-svn.perl git-svn: convert CRLF to LF in commit message to SVN 2017-12-14 00:09:38 +00:00
GIT-VERSION-GEN Git 2.16-rc0 2017-12-28 14:12:06 -08:00
git-web--browse.sh
git.c serve: introduce git-serve 2018-03-15 12:01:08 -07:00
git.rc mingw: include the full version information in the resources 2017-11-01 13:43:52 +09:00
gpg-interface.c
gpg-interface.h
graph.c
graph.h
grep.c Merge branch 'ab/pcre2-grep' 2017-12-13 13:28:54 -08:00
grep.h Merge branch 'ab/pcre-v2' into maint 2017-11-21 14:05:30 +09:00
hash.h Add structure representing hash algorithm 2017-11-13 13:20:44 +09:00
hashmap.c
hashmap.h hashmap: adjust documentation to reflect reality 2017-12-05 13:37:43 -08:00
help.c version --build-options: report commit, too, if possible 2017-12-14 22:53:04 -08:00
help.h
hex.c notes: move hex_to_bytes() to hex.c and export it 2017-11-01 10:35:35 +09:00
http-backend.c
http-fetch.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
http-push.c http-push: use hex_to_bytes() 2017-11-01 10:35:39 +09:00
http-walker.c
http.c Merge branch 'ws/curl-http-proxy-over-https' 2017-12-28 14:08:50 -08:00
http.h
ident.c
imap-send.c imap-send: URI encode server folder 2017-12-18 13:57:06 -08:00
INSTALL git-imap-send: use libcurl for implementation 2014-11-10 09:17:27 -08:00
iterator.h
khash.h convert trivial cases to ALLOC_ARRAY 2016-02-22 14:51:09 -08:00
kwset.c Replace Free Software Foundation address in license notices 2017-11-09 13:21:21 +09:00
kwset.h Replace Free Software Foundation address in license notices 2017-11-09 13:21:21 +09:00
levenshtein.c
levenshtein.h
LGPL-2.1
line-log.c
line-log.h
line-range.c
line-range.h
list-objects-filter-options.c list-objects-filter-options: support --no-filter 2017-12-05 09:44:36 -08:00
list-objects-filter-options.h list-objects-filter-options: support --no-filter 2017-12-05 09:44:36 -08:00
list-objects-filter.c list-objects: filter objects in traverse_commit_list 2017-11-22 14:11:57 +09:00
list-objects-filter.h list-objects: filter objects in traverse_commit_list 2017-11-22 14:11:57 +09:00
list-objects.c Merge branch 'sb/describe-blob' 2017-12-28 14:08:50 -08:00
list-objects.h list-objects: filter objects in traverse_commit_list 2017-11-22 14:11:57 +09:00
list.h
ll-merge.c
ll-merge.h
lockfile.c
lockfile.h
log-tree.c log: add option to choose which refs to decorate 2017-11-22 13:18:59 +09:00
log-tree.h log: add option to choose which refs to decorate 2017-11-22 13:18:59 +09:00
ls-refs.c ls-refs: introduce ls-refs server command 2018-03-15 12:01:08 -07:00
ls-refs.h ls-refs: introduce ls-refs server command 2018-03-15 12:01:08 -07:00
mailinfo.c
mailinfo.h mailinfo: handle in-body header continuations 2016-09-21 10:23:11 -07:00
mailmap.c
mailmap.h
Makefile ls-refs: introduce ls-refs server command 2018-03-15 12:01:08 -07:00
match-trees.c match-trees: convert several leaf functions to use struct object_id 2016-04-25 14:26:29 -07:00
merge-blobs.c
merge-blobs.h
merge-recursive.c Merge branch 'en/merge-recursive-icase-removal' 2017-12-19 11:33:55 -08:00
merge-recursive.h
merge.c
mergesort.c
mergesort.h
mru.c
mru.h
name-hash.c hashmap: add API to disable item counting when threaded 2017-09-07 09:42:02 +09:00
notes-cache.c refs: convert read_ref and read_ref_full to object_id 2017-10-16 11:05:50 +09:00
notes-cache.h
notes-merge.c Switch empty tree and blob lookups to use hash abstraction 2017-11-13 13:20:44 +09:00
notes-merge.h
notes-utils.c
notes-utils.h
notes.c Merge branch 'rs/hex-to-bytes-cleanup' 2017-11-09 14:31:27 +09:00
notes.h
object.c
object.h list-objects: filter objects in traverse_commit_list 2017-11-22 14:11:57 +09:00
oidmap.c
oidmap.h oidmap: add oidmap iterator methods 2017-11-22 14:11:56 +09:00
oidset.c oidset: add iterator methods to oidset 2017-11-22 14:11:56 +09:00
oidset.h oidset: add iterator methods to oidset 2017-11-22 14:11:56 +09:00
pack-bitmap-write.c
pack-bitmap.c
pack-bitmap.h
pack-check.c
pack-objects.c
pack-objects.h
pack-revindex.c
pack-revindex.h
pack-write.c
pack.h
packfile.c cleanup: fix possible overflow errors in binary search 2017-10-10 08:57:24 +09:00
packfile.h
pager.c
parse-options-cb.c
parse-options.c
parse-options.h
patch-delta.c
patch-ids.c diff: make struct diff_flags members lowercase 2017-11-01 11:51:40 +09:00
patch-ids.h patch-ids: convert to struct object_id 2017-06-02 09:36:07 +09:00
path.c Merge branch 'ao/path-use-xmalloc' 2017-10-28 10:18:40 +09:00
path.h path: document path functions 2017-12-13 11:14:25 -08:00
pathspec.c Merge branch 'ex/deprecate-empty-pathspec-as-match-all' 2017-11-06 13:11:29 +09:00
pathspec.h Merge branch 'bw/pathspec-match-submodule-boundary' 2017-12-19 11:33:56 -08:00
pkt-line.c pkt-line: add packet_buf_write_len function 2018-03-15 12:01:09 -07:00
pkt-line.h pkt-line: add packet_buf_write_len function 2018-03-15 12:01:09 -07:00
preload-index.c
pretty.c log: add option to choose which refs to decorate 2017-11-22 13:18:59 +09:00
pretty.h format: create docs for pretty.h 2017-12-12 10:41:15 -08:00
prio-queue.c
prio-queue.h
progress.c Merge branch 'en/rename-progress' 2017-12-19 11:33:55 -08:00
progress.h progress: fix progress meters when dealing with lots of work 2017-11-15 13:11:25 +09:00
prompt.c
prompt.h
protocol.c protocol: introduce enum protocol_version value protocol_v2 2018-03-14 14:15:07 -07:00
protocol.h protocol: introduce enum protocol_version value protocol_v2 2018-03-14 14:15:07 -07:00
quote.c
quote.h Merge branch 'nd/icase' 2016-07-19 13:22:17 -07:00
reachable.c
reachable.h
read-cache.c Merge branch 'tb/add-renormalize' 2017-11-27 11:06:37 +09:00
README.md
ref-filter.c Merge branch 'js/for-each-ref-remote-name-and-ref' 2017-11-15 12:14:32 +09:00
ref-filter.h
reflog-walk.c
reflog-walk.h
refs.c ls-remote: pass ref prefixes when requesting a remote's refs 2018-03-15 12:01:08 -07:00
refs.h ls-remote: pass ref prefixes when requesting a remote's refs 2018-03-15 12:01:08 -07:00
RelNotes Prepare for 2.15.2 2017-12-06 09:10:35 -08:00
remote-curl.c remote-curl: create copy of the service name 2018-03-15 12:01:09 -07:00
remote-testsvn.c
remote.c Merge branch 'js/for-each-ref-remote-name-and-ref' 2017-11-15 12:14:32 +09:00
remote.h connect: request remote refs using v2 2018-03-15 12:01:08 -07:00
replace_object.c
repository.c repository: fix a sparse 'using integer as NULL pointer' warning 2017-11-28 12:37:37 +09:00
repository.h Integrate hash algorithm support with repo setup 2017-11-13 13:20:44 +09:00
rerere.c
rerere.h
resolve-undo.c
resolve-undo.h
revision.c Merge branch 'sb/describe-blob' 2017-12-28 14:08:50 -08:00
revision.h Merge branch 'sb/describe-blob' 2017-12-28 14:08:50 -08:00
run-command.c
run-command.h
send-pack.c
send-pack.h
sequencer.c Merge branch 'lb/rebase-i-short-command-names' 2017-12-27 11:16:21 -08:00
sequencer.h rebase -i: learn to abbreviate command names 2017-12-05 10:20:51 -08:00
serve.c fetch-pack: perform a fetch using v2 2018-03-15 12:01:08 -07:00
serve.h serve: introduce git-serve 2018-03-15 12:01:08 -07:00
server-info.c
setup.c Merge branch 'sg/setup-doc-update' 2017-12-19 11:33:58 -08:00
sh-i18n--envsubst.c Replace Free Software Foundation address in license notices 2017-11-09 13:21:21 +09:00
sha1_file.c Merge branch 'ds/for-each-file-in-obj-micro-optim' 2017-12-13 13:28:57 -08:00
sha1_name.c Merge branch 'jc/branch-name-sanity' 2017-11-28 13:41:49 +09:00
sha1-array.c
sha1-array.h
sha1-lookup.c
sha1-lookup.h
sha1dc_git.c
sha1dc_git.h
shallow.c Merge branch 'ma/leakplugs' 2017-09-29 11:23:43 +09:00
shell.c
shortlog.h
show-index.c
sideband.c refactor "dumb" terminal determination 2017-12-04 09:38:30 -08:00
sideband.h
sigchain.c
sigchain.h
split-index.c
split-index.h
strbuf.c Merge branch 'cc/skip-to-optional-val' 2017-12-28 14:08:46 -08:00
strbuf.h strbuf: remove unused stripspace function alias 2017-12-05 08:50:15 -08:00
streaming.c
streaming.h
string-list.c cleanup: fix possible overflow errors in binary search 2017-10-10 08:57:24 +09:00
string-list.h
sub-process.c
sub-process.h
submodule-config.c
submodule-config.h
submodule.c Merge branch 'bw/submodule-sans-cache-compat' 2017-12-27 11:16:28 -08:00
submodule.h submodule: convert get_next_submodule to not rely on the_index 2017-12-12 12:35:22 -08:00
symlinks.c
tag.c
tag.h
tar.h
tempfile.c
tempfile.h
thread-utils.c thread-utils.c: detect CPU count on older BSD-like systems 2015-03-10 15:13:28 -07:00
thread-utils.h
tmp-objdir.c
tmp-objdir.h
trace.c trace: improve performance while category is disabled 2017-12-06 09:43:02 -08:00
trace.h trace: improve performance while category is disabled 2017-12-06 09:43:02 -08:00
trailer.c
trailer.h
transport-helper.c transport-helper: introduce stateless-connect 2018-03-15 12:01:09 -07:00
transport-internal.h transport: convert get_refs_list to take a list of ref prefixes 2018-03-15 12:01:08 -07:00
transport.c transport-helper: introduce stateless-connect 2018-03-15 12:01:09 -07:00
transport.h transport-helper: introduce stateless-connect 2018-03-15 12:01:09 -07:00
tree-diff.c diff: make struct diff_flags members lowercase 2017-11-01 11:51:40 +09:00
tree-walk.c Merge branch 'bw/pathspec-match-submodule-boundary' 2017-12-19 11:33:56 -08:00
tree-walk.h
tree.c
tree.h
unicode_width.h
unimplemented.sh
unix-socket.c
unix-socket.h
unpack-trees.c Merge branch 'bp/fsmonitor' 2017-11-21 14:07:50 +09:00
unpack-trees.h
upload-pack.c fetch-pack: perform a fetch using v2 2018-03-15 12:01:08 -07:00
upload-pack.h fetch-pack: perform a fetch using v2 2018-03-15 12:01:08 -07:00
url.c
url.h
urlmatch.c
urlmatch.h
usage.c
userdiff.c
userdiff.h
utf8.c cleanup: fix possible overflow errors in binary search 2017-10-10 08:57:24 +09:00
utf8.h
varint.c
varint.h
version.c version --build-options: report commit, too, if possible 2017-12-14 22:53:04 -08:00
version.h version --build-options: report commit, too, if possible 2017-12-14 22:53:04 -08:00
versioncmp.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
walker.c
walker.h
wildmatch.c
wildmatch.h
worktree.c Merge branch 'bc/object-id' 2017-11-06 14:24:27 +09:00
worktree.h
wrap-for-bin.sh
wrapper.c wrapper.c: consistently quote filenames in error messages 2017-11-06 11:53:14 +09:00
write_or_die.c
ws.c
wt-status.c Merge branch 'bw/rebase-i-ignored-submodule-fix' into maint 2017-11-21 14:05:29 +09:00
wt-status.h status: add option to show ignored files differently 2017-10-31 11:54:21 +09:00
xdiff-interface.c xdiff-interface: export comparing and hashing strings 2017-10-26 11:23:22 +09:00
xdiff-interface.h xdiff-interface: export comparing and hashing strings 2017-10-26 11:23:22 +09:00
zlib.c

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-.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://public-inbox.org/git/, http://marc.info/?l=git and other archival sites.

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