Changes API.

See the Weblate's Web API documentation for detailed description of the API.

GET /api/changes/950048/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "unit": "https://translate-dev.freebsd.org/api/units/1811487/?format=api",
    "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesvm-design_index/?format=api",
    "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesvm-design_index/ru/?format=api",
    "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api",
    "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api",
    "timestamp": "2026-03-27T02:54:46.222270Z",
    "action": 2,
    "target": "FreeBSD решает проблему с глубиной вложенности с помощью приёма оптимизации, который называется \"All Shadowed Case\". Этот случай возникает, если в **C1** либо *C2* происходит столько случаев копирования страниц при записи, что они полностью перекрывают все страницы в *B*. Допустим, что такое произошло в *C1*. Уровень *C1* может теперь полностью пропускать уровень *B*, так что вместо цепочек *C1* -> *B* -> *A* и *C2* -> *B* -> *A* мы теперь имеем цепочки *C1* -> *A* и *C2* -> *B* -> *A*. Но посмотрите, что получается — теперь *B* имеет только одну ссылку (*C2*), так что мы можем объединить *B* и *C2*. В конечном итоге *B* будет полностью удалён, и мы получим цепочки *C1* -> *A* и *C2* -> *A*. Часто *B* будет содержать большое количество страниц, и ни *C1*, ни *C2* не смогут полностью его заменить. Если мы снова породим процесс и создадим набор уровней *D*, при этом, однако, более вероятно, что один из уровней *D* постепенно сможет полностью заместить гораздо меньший набор данных, представленный *C1* и *C2*. Та же самая оптимизация работает в любой точке графа и её главным результатом является то, что даже на сильно загруженной машине с множеством порождаемых процессов стеки объектов VM не часто бывают глубже четырёх уровней. Это верно как для порождающего, так и для порождённого процессов, и остаётся справедливым как в случае, когда ветвление выполняет родитель, так и в случае, когда ветвление выполняет его потомок.",
    "id": 950048,
    "action_name": "修改了译文",
    "url": "https://translate-dev.freebsd.org/api/changes/950048/?format=api"
}