A changeset consists of a group of changes made by a single user over a short period of time (see also: editing). One changeset may for example include the additions of new elements to OSM, the addition of new tags to existing elements, changes to tag values of elements, deletion of tags and also deletion of elements.
Edits can only be added to a changeset as long as it is still open; a changeset can either be closed explicitly (see your editor's documentation), or it closes itself if no edits are added to it for a period of inactivity (currently one hour). The same user can have multiple active changesets at the same time. A changeset has a maximum capacity (currently 10,000 elements), maximum lifetime (currently 24 hours) and idle timeout (currently 1 hour).
The History function on www.osm.org shows the changesets of the currently viewed area. They have an "extent" (bounding box) which is a rectangle surrounding all the changes. For "bots" that make small changes around the world this can be quite big. This is why many changesets show up for an area even when that changeset does not seem to be relevant. Better tools are available.
Changesets can be directly accessed using the following URL schema:
https://www.openstreetmap.org/changeset/<Changeset number> Another option is to use the query feature and select a feature which will show the feature details and the last changeset for it.
Changeset Discussions are comments and replies (a discussion!) appearing inline alongside the details of changeset on the website. It's a good place to welcome new users and give them tips on their mapping contributions, or to discuss a changeset which seems problematic, with the user who added it, and publicly with others in the OpenStreetMap community. For more details read this walk-through on the blog.
Some statistics about these discussions are displayed here.
Tags on changesets
name=value pairs attached (tags). The vast majority of changesets will have these two tags:
- comment=* – describing why a mapper made that group of changes, or what was changed. By some software (e.g. www.osm.org) this tag is not displayed as tag but as changeset summary/headline instead (see the screenshot image here).
While optional, mappers are encouraged to make full use of this tag by setting a meaningful, human-generated description (not an automated message), as it will show up almost everywhere where the changeset is listed, and is likely to be read by fellow mappers to try and understand what has happened. See also Good changeset comments.
- created_by=* – specify the editor or script which made the changes
Some other commonly used tags include:
- imagery_used=* – indicates which imagery was being displayed in the editor
- source=* – specify the source for the edits that have been made in this changeset
- bot=yes – for automated edits, performed by a program (a.k.a. script or bot)
- locale=* - stores the language used by the editor (JOSM for instance uses created_by=JOSM/1.5 (13367 en) with the last letters indicating the language).
- review_requested=yes - allows a user to request someone to review the changeset. iD and JOSM have an option to insert this tag and OSMCha (and other tools) identifies it and makes it possible to find changesets with this tag. Also see a blog post about it.
After the 2.4.0 update of ID these tags are added to changesets from users that have less than 100 edits:
- hashtags=* – Semicolon delimited, e.g. “#MissingMaps;#Tanzania”
- host=* - The internet address of the web editor.
- changesets_count=* – The number of edits the user has made, will be “0” for someone making their first edit
- ideditor:walkthrough_started=yes - If the user started the walk though.
- ideditor:walkthrough_progress=* - User's progress
It is not possible to change a changeset after it has closed (in editors or via the API), and we do not store a history of changes to tags on changsets.
Custom changeset tags are also possible. When this was designed, this was intended as flexibility for editor developer, rather than complexity to expose to the end-user, however the JOSM, Potlatch2, and iD editors allow end-users to specify custom changeset tags (and make up new tags if you like, as when tagging data elements).
Changesets were introduced with API v0.6 in April 2009. Changesets were "synthesised" for edits before that date. For technical details, see the API 0.6 documentation which contains extensive documentation on them. See also the Get Capabilities documentation.
Some tags were initialy used on elements only for attaching metadata displayed in map editors or in quality assurance tools (such as completion status, things to do, approximations, source, etc.). Since version 0.6 of the API, map editors and import tools are encouraged to attach these metadata tags instead to the changesets they create (changesets are not data elements) instead of tagging every added or modified data element: these old tags on elements are now documented on this wiki as "discardable", meaning that they may be silently deleted from data elements by editors when they update them (they are still usable in changesets only, and still visible in the history of elements, in the version pointed by their initial changeset, but newer updated or created elements will no longer use these tags, attached now to the changeset linked to each version of elements).
Here is a proposal to define more common changeset tags that can be used to describe edits: Proposed features/changeset_tags (including the previous)