<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>repository on SOW</title>
    <link>https://sow.pgsty.com/zh/tags/repository/</link>
    <description>Recent content in repository 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/repository/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
        <title>SOW 设计演进：从 Route Graph 收敛到 Repository Core</title>
        <link>https://sow.pgsty.com/zh/blog/design/evolution/</link>
        <pubDate>Mon, 10 Aug 2026 00:00:00 +0000</pubDate>
        
        <guid>https://sow.pgsty.com/zh/blog/design/evolution/</guid>
        <description>&lt;p&gt;本文对应 2026-08-10 围绕 Repository Core 完成的 SOW 收敛决策。它从早期规划、ADR、评审、&#xA;迁移与验证目录中提炼值得维护的结论，但不会把每份过程制品都变成另一套产品文档。&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>设计原则</title>
        <link>https://sow.pgsty.com/zh/blog/design/principles/</link>
        <pubDate>Sat, 08 Aug 2026 00:00:00 +0000</pubDate>
        
        <guid>https://sow.pgsty.com/zh/blog/design/principles/</guid>
        <description>&lt;p&gt;SOW 首先不是一个“元数据生成器”，而是一个所有权与状态迁移系统，只是它的输出恰好是&#xA;APT 与 RPM 仓库。下面这些原则让整套系统保持可推理。&lt;/p&gt;&#xA;&lt;h2 id=&#34;每个持久事实只有一个主人&#34;&gt;每个持久事实只有一个主人&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;每类持久事实都只有一个作用域与权威：&lt;/p&gt;</description>
      </item>
    <item>
        <title>为什么 SOW 每个仓库只保留一棵包体树</title>
        <link>https://sow.pgsty.com/zh/blog/design/single-payload/</link>
        <pubDate>Wed, 05 Aug 2026 00:00:00 +0000</pubDate>
        
        <guid>https://sow.pgsty.com/zh/blog/design/single-payload/</guid>
        <description>&lt;p&gt;这项决策起草于 2026-08-05 的 v0.2 发布前设计收敛阶段，并在 2026-08-08 随 SOW v0.2.0&#xA;正式交付，随后延续为 v0.3 与 v0.4 的布局契约。它记录的是架构选择，不是笼统的兼容性&#xA;PASS：协议闭包、普通软件包客户端、镜像工具、静态托管与对象存储始终属于彼此独立的证据层。&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>sow repo</title>
        <link>https://sow.pgsty.com/zh/docs/command/repo/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://sow.pgsty.com/zh/docs/command/repo/</guid>
        <description>&lt;p&gt;一个仓库（Repository）独占一份 &lt;code&gt;pool/&lt;/code&gt;、一份 &lt;code&gt;dists/&lt;/code&gt;、一个 SQLite 数据库与一个私有状态目录。它是&#xA;锁、事务恢复、Generation 编号与 Changeset 的边界——跨仓库不去重，也不承诺跨仓库原子提交。&#xA;&lt;code&gt;sow repo&lt;/code&gt; 管理的就是这条边界。&lt;/p&gt;</description>
      </item>
    <item>
        <title>仓库布局</title>
        <link>https://sow.pgsty.com/zh/docs/reference/layout/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://sow.pgsty.com/zh/docs/reference/layout/</guid>
        <description>&lt;p&gt;SOW 的 Managed 布局只有一种：软件包体在 &lt;code&gt;pool/&lt;/code&gt; 下只存一份，&lt;code&gt;dists/&lt;/code&gt;&#xA;只保存客户端视图元数据。对外服务、复制或发布时,单位始终是完整仓库目录。&lt;/p&gt;&#xA;&lt;h2 id=&#34;plain-模式&#34;&gt;Plain 模式&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;sow create&lt;/code&gt; 在现有软件包旁写入索引,不修改无关文件:&lt;/p&gt;</description>
      </item>
    <item>
        <title>核心概念</title>
        <link>https://sow.pgsty.com/zh/docs/start/concepts/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://sow.pgsty.com/zh/docs/start/concepts/</guid>
        <description>&lt;h2 id=&#34;plain-还是-managed&#34;&gt;Plain 还是 Managed&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;两条运行路径相互独立。&lt;/p&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;Plain&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Managed&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;入口&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;sow create DIR&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;init&lt;/code&gt;、&lt;code&gt;repo&lt;/code&gt;、&lt;code&gt;dist&lt;/code&gt;、&lt;code&gt;add&lt;/code&gt;、&lt;code&gt;rm&lt;/code&gt;、&lt;code&gt;build&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;状态&lt;/td&gt;&#xA;      &lt;td&gt;软件包目录&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;sow.yml&lt;/code&gt; 加私有 SQLite/操作日志&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;公共布局&lt;/td&gt;&#xA;      &lt;td&gt;平面 RPM/DEB 索引&lt;/td&gt;&#xA;      &lt;td&gt;Repository &lt;code&gt;pool/ + dists/&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;格式&lt;/td&gt;&#xA;      &lt;td&gt;RPM 与 DEB 可共存于一个目录&lt;/td&gt;&#xA;      &lt;td&gt;每个 Dist 一种格式&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&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;/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;/td&gt;&#xA;      &lt;td&gt;无&lt;/td&gt;&#xA;      &lt;td&gt;有&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;目录内容已经等于目标仓库时使用 Plain。需要由 SOW 管理成员、策略、Generation、签名、&#xA;审计或发布时使用 Managed。&lt;/p&gt;</description>
      </item>
    
  </channel>
</rss>
