diff --git a/internal/service/management.go b/internal/service/management.go index 15755ce..7cce577 100644 --- a/internal/service/management.go +++ b/internal/service/management.go @@ -79,7 +79,7 @@ func (s *Service) Preview(ctx context.Context, name string, u Update) (any, erro if u.SyncIntervalMinutes != nil { interval = *u.SyncIntervalMinutes } - return map[string]any{"sync_interval_minutes": interval, "revision": r.Revision, "preview": preview(r, u), "retained_versions": len(r.Versions), "note": "Retention applies at successful synchronization; pinned snapshots and branch heads remain available. Expired Git objects are reclaimed after synchronization."}, nil + return map[string]any{"sync_interval_minutes": interval, "revision": r.Revision, "preview": preview(r, u), "retained_versions": len(r.Versions), "note": "Retention applies after each successful synchronization and preparation; branch heads, pinned snapshots and snapshots of active jobs remain available. Released Git objects are reclaimed in the background."}, nil } func (s *Service) Update(ctx context.Context, name string, u Update, revision int64) (control.Repository, error) { if e := validateUpdate(u); e != nil { @@ -156,7 +156,8 @@ func (s *Service) Update(ctx context.Context, name string, u Update, revision in } } // Path changes invalidate the indexed scope; retention changes take effect - // at synchronization while already published snapshots remain available. + // at the next synchronization or preparation while already published + // snapshots remain available. if groupsChanged { r.DefaultBranch = "" r.ObservedAt = time.Time{} diff --git a/web/assets/repo-page.js b/web/assets/repo-page.js index 8150157..053664f 100644 --- a/web/assets/repo-page.js +++ b/web/assets/repo-page.js @@ -201,7 +201,7 @@ '
'+t('默认继承全局;用于 Git 拉取及文件对象补拉,新任务启动时生效。','Inherit global by default; used for Git fetching and object hydration when a new task starts.')+'
'+ - ''+t('包含 Git、索引和任务临时文件;达到预算会停止新增准备。','Includes Git, indexes and temporary job files; reaching the budget stops new preparation.')+'
'+t('包含 Git、索引和任务临时文件;用满时先按先后释放未受保护的旧快照。','Includes Git, indexes and temporary job files; when it is full, the oldest unprotected snapshots are released first.')+'
'+t('固定的版本不受保留策略和容量淘汰影响,只在此手动添加;准备版本不会自动固定。删除此处的 SHA 后,该版本重新受保留策略约束。','Pinned snapshots are never released by retention or capacity eviction and are only added here; preparing a commit does not pin it. Removing a SHA here returns it to ordinary retention.')+'