Mercurial
Mercurial
>
hg-stable
/ graph
summary
|
shortlog
|
changelog
| graph |
tags
|
bookmarks
|
branches
|
files
|
help
less
more
|
(0)
-30000
-10000
-3000
-1000
-240
+240
+1000
+3000
tip
Find changesets by keywords (author, files, the commit message), revision number or hash, or
revset expression
.
The revision graph only works with JavaScript-enabled browsers.
changelog: also monitor `00changelog.n` when applicable (issue6554)
stable
2021-09-21, by Pierre-Yves David
persistent-nodemap: introduce a test to highlight possible race
stable
2021-09-21, by Pierre-Yves David
test: enable share-safe in test-persistent-nodemap
stable
2021-09-21, by Pierre-Yves David
filecache: abstract the fetching of the list of tracked file
stable
2021-09-21, by Pierre-Yves David
persistent-nodemap: use quiet upgrade in tests
stable
2021-09-20, by Pierre-Yves David
persistent-nodemap: fix a typo in a test comment
stable
2021-09-20, by Pierre-Yves David
patchbomb: fix traceback on outgoing when not specifying revisions
stable
2021-09-20, by Raphaël Gomès
pep-517: remove the `build-backend` key to allow for users to build extensions
stable
2021-09-09, by Raphaël Gomès
tests: make removeemptydirs more portable
stable
2021-09-17, by Pierre-Yves David
check-code: make it possible to ignore the PWD check in some situation
stable
2021-09-17, by Pierre-Yves David
relnotes: update next
stable
2021-09-17, by Raphaël Gomès
relnotes: add release notes for 5.9
stable
2021-09-17, by Raphaël Gomès
narrow: fix commits of empty files
stable
2021-09-10, by Valentin Gatien-Baron
narrow: show repo corruption when commiting empty files
stable
2021-09-10, by Valentin Gatien-Baron
filemerge: be more strict when detecting conflict markers, add `|` markers
stable
2021-09-07, by Kyle Lippincott
Added signature for changeset 86a60679cf61
stable
2021-08-30, by Pulkit Goyal
Added tag 5.9.1 for changeset 86a60679cf61
stable
2021-08-30, by Pulkit Goyal
fix: again allow formatting the working copy while merging
stable
5.9.1
2021-08-27, by Martin von Zweigbergk
pyoxidizer: add arch to PyOxidizer MSIs
stable
2021-08-26, by Gregory Szorc
pyoxidizer: pass arch to WiXInstaller()
stable
2021-08-26, by Gregory Szorc
contrib: install PyOxidizer 0.17.0
stable
2021-08-26, by Gregory Szorc
packaging: reference proper output directory
stable
2021-08-26, by Gregory Szorc
packaging: pass extra_pyoxidizer_vars only to pyoxidizer
stable
2021-08-25, by Gregory Szorc
hg: don't attempt to extend `sys.path` with the user site without `APPDATA`
stable
2021-08-26, by Matt Harbison
ci: only run the phabricator step if the previous on succeeded
stable
2021-08-26, by Pierre-Yves David
clone: properly create target directories during local clone (issue6581)
stable
2021-08-25, by Pierre-Yves David
clone: add a file demonstrating issue6581 in test-clone-stream.t
stable
2021-08-25, by Pierre-Yves David
clone: verify the local clone in test-clone-stream.t
stable
2021-08-25, by Pierre-Yves David
clone: automatically glob stream clone output in test
stable
2021-08-25, by Pierre-Yves David
clone: fix a comment in test-clone-stream.t
stable
2021-08-25, by Pierre-Yves David
windows: degrade to py2 behavior when reading a non-symlink as a symlink
stable
2021-08-22, by Matt Harbison
pyoxidizer: add user-site to `sys.path` on Windows
stable
2021-08-18, by Matt Harbison
zeroconf: fix an issue concatenating bytes and str
stable
2021-08-18, by Matt Harbison
revlog: fix more type confusion in index_replace_sidedata_info (issue6580)
stable
2021-08-24, by Julien Cristau
revlog: fix type confusion with sidedata_comp_len (issue6580)
stable
2021-08-24, by Julien Cristau
resources: stop important a non existent FileNotFoundError
stable
2021-08-19, by Pierre-Yves David
template: FileNotFoundError is actually a built in exception
stable
2021-08-19, by Pierre-Yves David
check-code: drop the camelcase checks
stable
2021-08-19, by Pierre-Yves David
Added signature for changeset 53221078e0de
stable
2021-08-20, by Pulkit Goyal
Added tag 5.9 for changeset 53221078e0de
stable
2021-08-20, by Pulkit Goyal
pyoxidizer: always run the associated CI jobs
stable
5.9
2021-08-16, by Pierre-Yves David
pyoxidizer: skip for ZeroConf related test for now
stable
2021-08-18, by Pierre-Yves David
pyoxidizer: disable the test for disabled & broken extensions help
stable
2021-08-18, by Pierre-Yves David
pyoxidizer: re-install PYTHONPATH behavior
stable
2021-08-18, by Pierre-Yves David
windows: add pytest-vcr to the dependencies
stable
2021-08-18, by Pierre-Yves David
pyoxidizer: wrap the pyoxidizer script on multiple line
stable
2021-08-18, by Pierre-Yves David
pyoxidized: silence the fuzzywuzzy warning about python-Levenshtein
stable
2021-08-18, by Pierre-Yves David
pyoxidized: install fuzzywuzzy too
stable
2021-08-18, by Pierre-Yves David
pyoxidized: adapt output of test-install.t
stable
2021-08-18, by Pierre-Yves David
pyoxidized: disable part of `test-install.t` related to pip and virtualenv
stable
2021-08-18, by Pierre-Yves David
pyoxidized: adapt output of test-bad-extension.t
stable
2021-08-18, by Pierre-Yves David
pyoxidized: adapt output of test-flagprocessor.t
stable
2021-08-18, by Pierre-Yves David
pyoxidized: adapt output of `test-phases.t`
stable
2021-08-18, by Pierre-Yves David
pyoxidized: add a copy of the `doc` directory in the right location
stable
2021-08-18, by Pierre-Yves David
pyoxidized: add a copy of the `contrib` directory in the right location
stable
2021-08-18, by Pierre-Yves David
pyoxidized: add a copy of the `defaultrc` file in the right location
stable
2021-08-18, by Pierre-Yves David
pyoxidized: add a copy of the `helptext` directory in the right location
stable
2021-08-18, by Pierre-Yves David
template: handle missing resource in `_readmapfile`
stable
2021-08-18, by Pierre-Yves David
pyoxidized: add a copy of the `templates` directory in the right location
stable
2021-08-18, by Pierre-Yves David
pyoxidized: add a dedicated target in the tests
stable
2021-08-18, by Pierre-Yves David
pyoxidized: adapt test-devel-warnings.t
stable
2021-08-17, by Pierre-Yves David
test-extension: adapt output to pyoxidizer
stable
2021-08-17, by Pierre-Yves David
pyoxidized: add a `pyoxidizer` hghave keyword for line matching
stable
2021-08-17, by Pierre-Yves David
templater: swap `\` with `/` in more location
stable
2021-08-17, by Pierre-Yves David
templater: swap `\` with `/` to allow the resource logic to kicks in
stable
2021-08-17, by Pierre-Yves David
heptapod-ci: extend timeout for pytype checking
stable
2021-08-05, by Raphaël Gomès
ci: run --pyoxidized tests on Windows
stable
2021-08-09, by Matt Harbison
run-tests: introduce a --pyoxidized option
stable
2021-08-10, by Pierre-Yves David
ci: add a "all" template to easily control "when" test run
stable
2021-08-10, by Pierre-Yves David
Added signature for changeset 2813d406b036
stable
2021-08-10, by Pulkit Goyal
Added tag 5.9rc1 for changeset 2813d406b036
stable
2021-08-10, by Pulkit Goyal
issue6528: add a config option to control the fixing on the fly
stable
5.9rc1
2021-08-07, by Pierre-Yves David
issue6528: also filter delta on the fly when applying a changegroup
stable
2021-08-07, by Pierre-Yves David
filelog: open the writing context a bit earlier in `addgroup`
stable
2021-08-07, by Pierre-Yves David
issue6528: implement _is_revision_affected_fast using callback
stable
2021-08-07, by Pierre-Yves David
issue6528: implement _is_revision_affected using callback
stable
2021-08-07, by Pierre-Yves David
debugcommands: add a `--paranoid` option to `debug-repair-issue-6528`
stable
2021-08-06, by Raphaël Gomès
repair: improve performance of detection of revisions affected by issue6528
stable
2021-08-05, by Raphaël Gomès
debugcommands: introduce a debug command to repair repos affected by issue6528
stable
2021-07-27, by Raphaël Gomès
contrib: switch the Windows bootstrap environment to py3.9
stable
2021-08-09, by Matt Harbison
contrib: comment out the 64-bit py38 dependency installation on Windows
stable
2021-08-09, by Matt Harbison
contrib: drop python2.7 from the Windows dependency install script
stable
2021-08-09, by Matt Harbison
contrib: log the command and args for every process installing windows deps
stable
2021-08-09, by Matt Harbison
windows-ci: run Windows CI automatically alongside the others
stable
2021-07-23, by Raphaël Gomès
vfs: always use / as file separator (issue6546)
stable
2021-08-05, by Pierre-Yves David
subrepo: compare normalised vfs path
stable
2021-08-05, by Pierre-Yves David
pager: account for flakiness in Windows output
stable
2021-08-05, by Raphaël Gomès
windows-ci: clean up the Heptapod CI file now that the baseline is solid
stable
2021-07-23, by Raphaël Gomès
test-nointerrupt: make "sure" the handler "might" trigger (issue6558)
stable
2021-08-03, by Pierre-Yves David
testing: make sure write_file is "atomic"
stable
2021-08-03, by Pierre-Yves David
test: disable test-subrepo-git.t in python2 + chg
stable
2021-08-04, by Pierre-Yves David
check-module-imports: ignore non-stdlib module installed by distribution
stable
2021-08-03, by Pierre-Yves David
remotefilelog: fix what looks like a wrong refactoring
stable
2021-08-02, by Valentin Gatien-Baron
rust-nodemap: falling back to C impl as mitigation
stable
2021-08-01, by Georges Racinet
obsolete: disable other evolution config options if createmarkers is off
stable
2021-07-28, by Anton Shestakov
fix: use obsolete.isenabled() to check for experimental.allowdivergence
stable
2021-07-28, by Anton Shestakov
rebase: use obsolete.isenabled() to check for experimental.allowdivergence
stable
2021-07-28, by Anton Shestakov
heptapod-ci: enable pytype testing for all pipelines
stable
2021-08-02, by Raphaël Gomès
pytype: add assertions to explain revlogv2 invariants to Pytype
stable
2021-08-02, by Raphaël Gomès
typing: add several assertions to dirstatemap to appease pytype
stable
2021-07-30, by Matt Harbison
windows: avoid a bytes vs unicode crash reading passwords on py2
stable
2021-08-02, by Matt Harbison
streamclone: ensure the server sends the right amount of data
stable
2021-08-01, by Valentin Gatien-Baron
rewriteutil: fix crash when a rewritten message references f{6,64}
stable
2021-07-29, by Augie Fackler
tests: add explicit coverage for update_hash_refs from rewriteutil
stable
2021-07-29, by Augie Fackler
store: document the decoding discrepancy in store.py
stable
2021-07-27, by Pierre-Yves David
clone: add a file with special character while testing uncompressed
stable
2021-07-27, by Pierre-Yves David
clone: test local clone in `test-clone-uncompressed.t` too
stable
2021-07-27, by Pierre-Yves David
test-transaction-safety: relax some of the synchronisation schedule
stable
2021-07-27, by Pierre-Yves David
test-transaction-safety: document the test schedule
stable
2021-07-27, by Pierre-Yves David
rhg: Propagate permission errors when finding a repository
stable
2021-07-29, by Simon Sapin
rhg: Add build and config instructions to the README file
stable
2021-07-29, by Simon Sapin
dirstate: use `add` in the deprecation message about `add`
stable
2021-07-28, by Pierre-Yves David
help: correct config.profiling.freq name (frequency->freq)
stable
2021-07-26, by Kyle Lippincott
run-tests: use a small timeout for chg instance
stable
2021-07-28, by Pierre-Yves David
run-tests: do not inherit file descriptor when running a command
stable
2021-07-28, by Pierre-Yves David
dummyssh: make sure we don't inherit files descriptor to the children
stable
2021-07-28, by Pierre-Yves David
tests: make test-serve works on system that allow user to bind low port
stable
2021-07-29, by Pierre-Yves David
git: restore basic functionality (issue6545)
stable
2021-07-29, by Augie Fackler
dirstate: fix typo in docstring
stable
2021-07-29, by Augie Fackler
help: indicate how to run downgrade a repository using persistent nodemap
stable
2021-07-26, by Pierre-Yves David
help: use the correct spelling for `slow-path` in persistent nodemap help
stable
2021-07-26, by Pierre-Yves David
fix: use scmutil.movedirstate() instead of reimplementing
stable
2019-03-11, by Martin von Zweigbergk
fix: rewrite writeworkingdir() to explicitly not work with merges
stable
2019-03-11, by Martin von Zweigbergk
tests: demonstrate bug in `hg fix` with incorrectly dirty working copy
stable
2021-07-22, by Martin von Zweigbergk
upgrade: byteify an i18n message
stable
2021-07-21, by Matt Harbison
typing: convert an annotation to an assertion in commands.py
stable
2021-07-21, by Matt Harbison
test: remove `sleep` usage in `test-nointerrupt.t` (issue6271)
stable
2021-07-20, by Pierre-Yves David
Added signature for changeset d7515d29761d
stable
2021-07-22, by Pulkit Goyal
Added tag 5.9rc0 for changeset d7515d29761d
stable
2021-07-22, by Pulkit Goyal
branching: merge default into stable
stable
5.9rc0
2021-07-21, by Pierre-Yves David
relnotes: document the change in the dirstate API
2021-07-19, by Pierre-Yves David
dirstate: deprecate the `add` method
2021-07-19, by Pierre-Yves David
mq: replace `add` call with newer API
2021-07-18, by Pierre-Yves David
largefile: use `update_file` instead of `add` in `synclfdirstate`
2021-07-19, by Pierre-Yves David
largefile: use `update_file` instead of `add` in `mergerecordupdates`
2021-07-19, by Pierre-Yves David
dirstate: deprecate the `drop` method
2021-07-19, by Pierre-Yves David
narrow: stop using `drop` in the `updateworkingcopy`
2021-07-19, by Pierre-Yves David
mq: replace `drop` call with newer API
2021-07-18, by Pierre-Yves David
largefile: use `update_file` instead of `drop` during `rollback`
2021-07-19, by Pierre-Yves David
largefile: use `update_file` instead of `drop` in `synclfdirstate`
2021-07-19, by Pierre-Yves David
sparse: use `update_file` instead of `drop`
2021-07-19, by Pierre-Yves David
sparse: use `update_file` instead of `drop` in `refreshwdir`
2021-07-19, by Pierre-Yves David
amend: use `update_file` instead of `drop`
2021-07-19, by Pierre-Yves David
context: use `update_file` instead of `drop` in `markcommitted`
2021-07-19, by Pierre-Yves David
dirstate: deprecate the `merge` method in all cases
2021-07-19, by Pierre-Yves David
mq: drop the use of `dirstate.merged`
2021-07-18, by Pierre-Yves David
dirstate: deprecate the `otherparent` method in all cases
2021-07-19, by Pierre-Yves David
dirstate: deprecate the `normallookup` method in all cases
2021-07-19, by Pierre-Yves David
narrow: stop using `normallookup` during a test
2021-07-19, by Pierre-Yves David
narrow: use `update_file` instead of `normallookup` after update
2021-07-19, by Pierre-Yves David
test: use the internal `_normallookup` in `test-rebuildstate.t`
2021-07-19, by Pierre-Yves David
sparse: use `update_file` instead of `normallookup` in refreshwdir
2021-07-19, by Pierre-Yves David
keyword: use `update_file_p1` instead of `normallookup`
2021-07-19, by Pierre-Yves David
fix: use `set_possibly_dirty` instead of `normallookup`
2021-07-19, by Pierre-Yves David
eol: use `set_possibly_dirty` instead of `normallookup`
2021-07-19, by Pierre-Yves David
mq: replace `normallookup` call with newer API
2021-07-18, by Pierre-Yves David
revert: use `set_possibly_dirty` instead of `normallookup`
2021-07-19, by Pierre-Yves David
dirstate: enforce `possibly_dirty` in `set_tracked`
2021-07-19, by Pierre-Yves David
record: use `update_file` instead of `normallookup`
2021-07-19, by Pierre-Yves David
copy: use `set_tracked` instead of `normallookup` in `dirstatecopy`
2021-07-19, by Pierre-Yves David
amend: use `update_file` instead of `normallookup`
2021-07-19, by Pierre-Yves David
mergestate: use `update_file` to handle for `ACTION_EXEC`
2021-07-19, by Pierre-Yves David
mergestate: use `update_file` to handle for `ACTION_ADD_MODIFIED`
2021-07-19, by Pierre-Yves David
largefile: use `update_file` for `synclfdirstate` "m" case
2021-07-19, by Pierre-Yves David
largefile: use `update_file` for `synclfdirstate` "n" case
2021-07-19, by Pierre-Yves David
largefile: replace the `normallookup` call when creating a new lfdirstate
2021-07-19, by Pierre-Yves David
largefile: use `update_file` instead of `normallookup` in `updatelfiles`
2021-07-19, by Pierre-Yves David
largefile: use `set_possibly_dirty` instead of `normallookup`
2021-07-18, by Pierre-Yves David
dirstate: add a `set_possibly_dirty` method
2021-07-18, by Pierre-Yves David
dirstate: deprecate the `normal` method in all cases
2021-07-19, by Pierre-Yves David
test: use `set_tracked` in `test-context`
2021-07-19, by Pierre-Yves David
mq: replace usage of `normal` with newer API
2021-07-18, by Pierre-Yves David
largefile: use `update_file` instead of `normal` in `synclfdirstate`
2021-07-19, by Pierre-Yves David
largefile: use `set_clean` instead of `normal` in `repo.status`
2021-07-19, by Pierre-Yves David
largefile: use `set_clean` instead of `normal` in `lfdirstatestatus`
2021-07-19, by Pierre-Yves David
largefile: use `update_file` instead of `normal` in `updatelfiles`
2021-07-19, by Pierre-Yves David
largefile: respect the `normal` signature
2021-07-19, by Pierre-Yves David
keyword: use `set_clean` instead of `normal`
2021-07-19, by Pierre-Yves David
sparse: use `update_file` instead of `normal` in `refreshwdir`
2021-07-19, by Pierre-Yves David
sparse: use `update_file` instead of `normal` during `applyupdates`
2021-07-19, by Pierre-Yves David
sparse: apply update with in a `parentchange` context
2021-07-19, by Pierre-Yves David
revert: use `set_clean` instead of `normal`
2021-07-19, by Pierre-Yves David
context: use `update_file` instead of `normal` in `markcommitted`
2021-07-19, by Pierre-Yves David
context: use new API instead of `normal` during fixup post status
2021-07-19, by Pierre-Yves David
dirstate: introduce a `set_clean` method
2021-07-19, by Pierre-Yves David
largefile: use `update_file` instead of `normal`
2021-07-19, by Pierre-Yves David
largefile: adjust the dirstate post update within a `parentchange` context
2021-07-19, by Pierre-Yves David
dirstate: deprecate `dirstate.remove` in all cases
2021-07-16, by Pierre-Yves David
largefile: use `update_file` instead of `remove` in `synclfdirstate`
2021-07-19, by Pierre-Yves David
largefile: rearrange conditionnal in `synclfdirstate`
2021-07-19, by Pierre-Yves David
largefile: use `update_file` instead of `remove` in `mergerecordupdates`
2021-07-19, by Pierre-Yves David
mq: use `update_file_p1` instead of `remove` when adjusting dirstate
2021-07-17, by Pierre-Yves David
dirstate: properly update `_lastnormaltime` in `update_file_p1`
2021-07-19, by Pierre-Yves David
dirstate: properly update `_lastnormaltime` in `update_file`
2021-07-19, by Pierre-Yves David
dirstate: use `reset_state` in `update_file_p1`
2021-07-15, by Pierre-Yves David
dirstate: rename `update_file_reference` to `update_file_p1`
2021-07-15, by Pierre-Yves David
dirstate-map: move most of `dirstate.update_file` logic in the dsmap
2021-07-19, by Pierre-Yves David
dirstate: replace `update_parent_file_data` with simpler `update_parent` call
2021-07-16, by Pierre-Yves David
dirstate: factor out the part retrieve "filedata" out of `normal`
2021-07-16, by Pierre-Yves David
dirstate-map: factor out the change to _dirs and _alldirs on removing
2021-07-15, by Pierre-Yves David
dirstate-map: factor out the change to _dirs and _alldirs on dropping
2021-07-15, by Pierre-Yves David
dirstate-map: factor out the change to _dirs and _alldirs on adding
2021-07-15, by Pierre-Yves David
dirstate-item: introduce a `dm_otherparent` property
2021-07-14, by Pierre-Yves David
dirstate-item: introduce a `dm_nonnormal` property
2021-07-14, by Pierre-Yves David
dirstate-v2: Reserve a few bytes of space for future extensions
2021-07-16, by Simon Sapin
dirstate-v2: Separate iterators for dirfoldmap and debugdirstate
2021-07-16, by Simon Sapin
dirstate-v2: Move fixed-size tree metadata into the docket file
2021-07-15, by Simon Sapin
dirstate-v2: Add heuristic for when to create a new data file
2021-07-08, by Simon Sapin
dirstate-v2: Reuse existing paths when appending to a data file
2021-07-15, by Simon Sapin
dirstate-v2: Reuse existing nodes when appending to a data file
2021-07-15, by Simon Sapin
dirstate-v2: Support appending to the same data file
2021-07-13, by Simon Sapin
dirstate-v2: shrink on-disk path lengths to 16-bits
2021-07-13, by Simon Sapin
dirstate-v2: Rename Header to Root, move it to the end of the data file
2021-07-12, by Simon Sapin
dirstate-v2: Enforce data size read from the docket file
2021-07-12, by Simon Sapin
dirstate-v2: Introduce a docket file
2021-07-08, by Simon Sapin
dirstate: replace a dead conditional branch with an assert in `update_file`
2021-07-15, by Pierre-Yves David
dirstate-map: do not use `size` to gate copy dropping during remove_file
2021-07-14, by Pierre-Yves David
dirstate: drop a duplicated assert
2021-07-15, by Pierre-Yves David
dirstate: drop duplicated check
2021-07-15, by Pierre-Yves David
dirstate: add a `set_possibly_dirty` in `fakedirstatewritetime`
2021-07-19, by Pierre-Yves David
dirstatemap: use `set_possibly_dirty` in `clearambiguoustimes`
2021-07-19, by Pierre-Yves David
dirstate-item: use `set_possibly_dirty` in `pure.pack_dirstate`
2021-07-19, by Pierre-Yves David
dirstate-item: add a `set_possibly_dirty` method
2021-07-19, by Pierre-Yves David
dirstate-item: add a `from_v1_data` constructor
2021-07-13, by Pierre-Yves David
dirstate-item: use an explicit __init__ function instead of the attrs one
2021-07-13, by Pierre-Yves David
dirstate: deprecated `drop` outside of `update/merge`
2021-07-08, by Pierre-Yves David
dirstate: deprecated `remove` outside of `update/merge`
2021-07-08, by Pierre-Yves David
dirstate: deprecate the `add` method outside of update/merge context
2021-07-08, by Pierre-Yves David
upgrade: avoid a traceback in case of unrecognized revlog
2021-07-19, by Pierre-Yves David
walk: no longer ignore revlogs of files starting with `undo.` (issue6542)
2021-07-19, by Pierre-Yves David
largefiles: replace use of synclfdirstate with drop
2021-07-13, by Pulkit Goyal
testing: do not stop waiting if timeout is 0 (issue6541)
2021-07-17, by Cédric Krier
largefile: use `parentchange` markcommitted
2021-07-08, by Pierre-Yves David
largefile: use `set_untracked` in the override of copy/rename
2021-07-08, by Pierre-Yves David
largefile: use `set_untracked` in the `forget` override
2021-07-08, by Pierre-Yves David
largefile: directly use set_untracked() for removing files
2021-07-08, by Pierre-Yves David
largefile: use `parentchange` during rollback
2021-07-08, by Pierre-Yves David
largefile: consider `updatelfiles` as a `parentchange`
2021-07-08, by Pierre-Yves David
largefile: use `set_tracked` in the `hg copy` overwrite
2021-07-08, by Pierre-Yves David
largefile: use parentchange during mergerecordupdates
2021-07-08, by Pierre-Yves David
less
more
|
(0)
-30000
-10000
-3000
-1000
-240
+240
+1000
+3000
tip