<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>generation on SOW</title>
    <link>https://sow.pgsty.com/zh/tags/generation/</link>
    <description>Recent content in generation on SOW</description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    
    
    
      <lastBuildDate>Fri, 28 Aug 2026 18:32:04 +0800</lastBuildDate>
    
    
      <atom:link href="https://sow.pgsty.com/zh/tags/generation/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
        <title>SOW v0.2.0</title>
        <link>https://sow.pgsty.com/zh/blog/release/sow-docs-launch/</link>
        <pubDate>Sat, 08 Aug 2026 00:00:00 +0000</pubDate>
        
        <guid>https://sow.pgsty.com/zh/blog/release/sow-docs-launch/</guid>
        <description>&lt;p&gt;SOW 0.2.0 是 &lt;a href=&#34;https://pigsty.cc&#34;&gt;Pigsty&lt;/a&gt; 出品的自包含 RPM/DEB 仓库管理器，Release&#xA;资产以单个 Go 可执行文件覆盖 Linux 与 macOS 构建目标。&lt;/p&gt;&#xA;&lt;h2 id=&#34;两种工作模式&#34;&gt;两种工作模式&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Plain 模式&lt;/strong&gt; 给目录顶层已有的 RPM 与 DEB 文件就地生成索引：&lt;/p&gt;</description>
      </item>
    <item>
        <title>系统模型</title>
        <link>https://sow.pgsty.com/zh/blog/design/model/</link>
        <pubDate>Sat, 08 Aug 2026 00:00:00 +0000</pubDate>
        
        <guid>https://sow.pgsty.com/zh/blog/design/model/</guid>
        <description>&lt;p&gt;SOW 刻意把模型分层：配置表达意图，数据库记录有主状态，公共树是确定性投影。&#xA;任何一层都不能悄悄替代另一层。&lt;/p&gt;&#xA;&lt;h2 id=&#34;对象层级&#34;&gt;对象层级&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-327f10ed-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;text&#34; data-td-line-count=&#34;10&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-327f10ed-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Workspace&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── Repository&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── Package Object&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── Dist&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   │   └── Membership -&amp;gt; Package Object&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── Desired 状态&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── Built Generation&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   └── Retained Generation 引用&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└── Publication Target&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    └── Repository + provider + prefix&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h3 id=&#34;workspace&#34;&gt;Workspace&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;Workspace 提供发现、配置与协调，拥有 &lt;code&gt;sow.yml&lt;/code&gt;、私有 &lt;code&gt;.sow/&lt;/code&gt; 目录和稳定锁路径；&#xA;它不是包体去重域。&lt;/p&gt;</description>
      </item>
    <item>
        <title>Managed 工作区</title>
        <link>https://sow.pgsty.com/zh/docs/feature/managed/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://sow.pgsty.com/zh/docs/feature/managed/</guid>
        <description>&lt;p&gt;当同一个仓库要维护好几个月 —— 包成批到达、由策略决定谁留下、事后还得说清楚什么时候变了什么 —— 你需要的是 Managed 模式。本页讲三层模型、它产出的布局,以及命令怎么判断你说的是哪个仓库、哪个 Dist。&lt;/p&gt;</description>
      </item>
    <item>
        <title>第一个工作区</title>
        <link>https://sow.pgsty.com/zh/docs/start/workspace/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://sow.pgsty.com/zh/docs/start/workspace/</guid>
        <description>&lt;p&gt;Managed 模式会持久保存配置、成员关系、Generation 与审计状态。下面从空目录开始。&lt;/p&gt;&#xA;&lt;div class=&#34;td-steps td-max-width-on-larger-screens&#34;&gt;&#xA;&lt;h2 id=&#34;1-初始化工作区&#34;&gt;初始化工作区&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-fb3ccf08-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;2&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-fb3ccf08-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sow init /srv/sow&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; /srv/sow&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;&lt;code&gt;init&lt;/code&gt; 创建：&lt;/p&gt;</description>
      </item>
    <item>
        <title>事务与恢复</title>
        <link>https://sow.pgsty.com/zh/docs/feature/transactions/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://sow.pgsty.com/zh/docs/feature/transactions/</guid>
        <description>&lt;p&gt;本页说明 Managed 模式如何防止 live 指针指向缺失内容，以及如何协调 SQLite 状态与文件系统变更。&lt;/p&gt;&#xA;&lt;h2 id=&#34;不变式&#34;&gt;不变式&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;在受支持的本地 POSIX 文件系统上，沿 Managed 协议指针读取的客户端只会得到完整旧视图或&#xA;完整新视图，包括进程中断之后。&lt;/strong&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>sow build</title>
        <link>https://sow.pgsty.com/zh/docs/command/build/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://sow.pgsty.com/zh/docs/command/build/</guid>
        <description>&lt;p&gt;&lt;code&gt;sow build&lt;/code&gt; 是显式的 Desired-to-Built 收敛命令。它获取 Repository 写锁，恢复任何可裁决的&#xA;未完成 Operation，渲染并验证完整 Generation，最后切换协议指针。&lt;/p&gt;&#xA;&lt;h2 id=&#34;语法&#34;&gt;语法&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-2b76fe8d-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;text&#34; data-td-line-count=&#34;1&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-2b76fe8d-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sow build [-j|--jobs N] [-C|--workdir DIR] [-r|--repo NAME] [-d|--dist NAME]... [-T|--timeout DUR | -N|--no-wait] [--json]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--static&#34;&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;参数&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;含义&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;默认值&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;code&gt;-j, --jobs N&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;并行 Worker 数，不得小于 &lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;逻辑 CPU 数&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;code&gt;-C, --workdir DIR&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;工作区发现起点&lt;/td&gt;&#xA;      &lt;td&gt;当前目录&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;code&gt;-r, --repo NAME&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;选择 Repository&lt;/td&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://sow.pgsty.com/zh/docs/command/&#34;&gt;选择规则&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;code&gt;-d, --dist NAME&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;构建指定 Dist；可重复&lt;/td&gt;&#xA;      &lt;td&gt;全部受影响 Dist&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;code&gt;-T, --timeout DUR&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;最长等锁时间；&lt;code&gt;0&lt;/code&gt; 表示无限等待&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;code&gt;-N, --no-wait&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;锁被占用时立即失败&lt;/td&gt;&#xA;      &lt;td&gt;false&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;code&gt;--json&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;将结果包装进 &lt;code&gt;sow.cli/v1&lt;/code&gt; Envelope&lt;/td&gt;&#xA;      &lt;td&gt;false&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;不带 &lt;code&gt;-d&lt;/code&gt; 时，SOW 收敛所选 Repository 中全部受影响 Dist；带 &lt;code&gt;-d&lt;/code&gt; 时只收敛指定 Dist，&#xA;未选择的变化继续保持 dirty。&lt;/p&gt;</description>
      </item>
    <item>
        <title>sow changes</title>
        <link>https://sow.pgsty.com/zh/docs/command/changes/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://sow.pgsty.com/zh/docs/command/changes/</guid>
        <description>&lt;p&gt;&lt;code&gt;sow changes&lt;/code&gt; 比较 Built Generation，输出物理的 Repository 相对文件差异。它不显示尚未构建的&#xA;Desired 变化，也不是远端事务协议。&lt;/p&gt;&#xA;&lt;h2 id=&#34;语法&#34;&gt;语法&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-9d40bb37-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;text&#34; data-td-line-count=&#34;1&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-9d40bb37-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sow changes [BASE_GENERATION] [-C|--workdir DIR] [-r|--repo NAME] [--json]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--static&#34;&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;参数&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;含义&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;默认值&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;code&gt;-C, --workdir DIR&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;工作区发现起点&lt;/td&gt;&#xA;      &lt;td&gt;当前目录&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;code&gt;-r, --repo NAME&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;选择 Repository&lt;/td&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://sow.pgsty.com/zh/docs/command/&#34;&gt;选择规则&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;code&gt;--json&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;输出 &lt;code&gt;sow.cli/v1&lt;/code&gt; Envelope&lt;/td&gt;&#xA;      &lt;td&gt;false&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;该命令作用于整个 Repository，明确拒绝 &lt;code&gt;-d/--dist&lt;/code&gt;。&lt;/p&gt;</description>
      </item>
    <item>
        <title>sow retain</title>
        <link>https://sow.pgsty.com/zh/docs/command/retain/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://sow.pgsty.com/zh/docs/command/retain/</guid>
        <description>&lt;p&gt;&lt;code&gt;sow retain&lt;/code&gt; 管理显式的本地 Generation 根。&lt;code&gt;retain add&lt;/code&gt; 只能冻结当前 Built Generation；后续&#xA;构建使它成为历史版本后，该代所需的软件包体仍受保护。&lt;/p&gt;&#xA;&lt;h2 id=&#34;语法&#34;&gt;语法&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-65eadc1b-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;text&#34; data-td-line-count=&#34;3&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-65eadc1b-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sow retain add GENERATION [-C|--workdir DIR] [-r|--repo NAME] [-T|--timeout DUR | -N|--no-wait] [--json]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sow retain ls             [-C|--workdir DIR] [-r|--repo NAME] [--json]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sow retain rm GENERATION  [-C|--workdir DIR] [-r|--repo NAME] [-T|--timeout DUR | -N|--no-wait] [--json]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;&lt;code&gt;GENERATION&lt;/code&gt; 必须是大于零的十进制整数。&lt;/p&gt;</description>
      </item>
    
  </channel>
</rss>
