@pogo-vcs/pogo 1.3.2 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +45 -0
  2. package/package.json +11 -11
package/README.md CHANGED
@@ -28,6 +28,7 @@ Pogo is a centralized version control system designed to be straightforward and
28
28
  - **🔖 Bookmarks:** Tag versions with bookmarks, like `main` for the current version or `v1.0.0` for a specific version. `main` is treated like a default branch in Git.
29
29
  - **📦 Go Module Support:** Import a Pogo repository as a Go module, no additional configuration or software required.
30
30
  - **🔒 Adaptive Security:** Automatically detects and uses HTTPS/TLS when available, gracefully falls back to HTTP when needed.
31
+ - **🔗 Symlink Support:** Full support for symbolic links with cross-platform compatibility.
31
32
 
32
33
  ## 🚀 Installation
33
34
 
@@ -161,6 +162,50 @@ The garbage collection system uses an adaptive strategy based on the total numbe
161
162
 
162
163
  The threshold can be configured via the `GC_MEMORY_THRESHOLD` environment variable. CI run logs are cleaned up during this process; the retention window is controlled by `CI_RUN_RETENTION` (default 30 days).
163
164
 
165
+ ## 🔗 Symbolic Link Support
166
+
167
+ Pogo provides full support for symbolic links (symlinks) on all platforms, allowing you to track and version control symlinks just like regular files.
168
+
169
+ ### How Symlinks Work
170
+
171
+ - **Tracking:** Pogo tracks symlinks by their target path, not by the content they point to
172
+ - **Relative Paths Only:** Symlinks must use relative paths and point to files/directories within the repository
173
+ - **Cross-Platform:** Symlink metadata is stored in a platform-independent way using forward slashes
174
+ - **Merging:** Symlinks can be merged just like regular files, with conflict detection for differing targets
175
+
176
+ ### Platform Requirements
177
+
178
+ - **Unix/macOS:** Full symlink support with no special requirements
179
+ - **Windows:** Requires Developer Mode (Windows 10+) or Administrator privileges to create symlinks
180
+ - To enable Developer Mode on Windows 10/11: Settings → Update & Security → For Developers → Developer Mode
181
+
182
+ ### Limitations
183
+
184
+ - **Repository Boundaries:** Symlinks cannot point outside the repository (enforced during push)
185
+ - **Absolute Paths:** Absolute symlink paths are converted to relative paths when possible, or rejected if they cannot be made relative
186
+ - **ZIP Archives:** When downloading a repository as a ZIP archive, symlinks are represented as `.symlink` text files containing the target path
187
+
188
+ ### Examples
189
+
190
+ ```sh
191
+ # Create a symlink in your repository
192
+ ln -s ../target.txt link.txt
193
+
194
+ # Pogo will track and version the symlink
195
+ pogo push
196
+
197
+ # The symlink will be recreated when cloned or checked out
198
+ pogo clone server:repo /path/to/clone
199
+ ```
200
+
201
+ ### Merge Conflicts
202
+
203
+ When merging changes that modify symlinks, Pogo handles conflicts intelligently:
204
+
205
+ - **Same Target:** If both branches change a symlink to the same target, no conflict occurs
206
+ - **Different Targets:** If branches change a symlink to different targets, a conflict is created with separate files for each version
207
+ - **Type Changes:** Converting between symlinks and regular files creates a conflict
208
+
164
209
  ## 🔐 Secrets Management
165
210
 
166
211
  Pogo provides a secure way to manage secrets for your CI pipelines. Secrets are encrypted values that can be referenced in your CI pipeline YAML files using the <code>&#123;&#123; secret "KEY" &#125;&#125;</code> template function. They are useful for storing sensitive data like API tokens, deployment keys, and credentials.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pogo-vcs/pogo",
3
- "version": "1.3.2",
3
+ "version": "1.5.0",
4
4
  "description": "A centralized version control system that is simple and easy to use.",
5
5
  "scripts": {
6
6
  "postinstall": "node install.js",
@@ -37,62 +37,62 @@
37
37
  "archives": {
38
38
  "darwin-arm64": {
39
39
  "name": "pogo_Darwin_arm64.tar.gz",
40
- "url": "https://github.com/pogo-vcs/pogo/releases/download/v1.3.2/pogo_Darwin_arm64.tar.gz",
40
+ "url": "https://github.com/pogo-vcs/pogo/releases/download/v1.5.0/pogo_Darwin_arm64.tar.gz",
41
41
  "bins": [
42
42
  "pogo"
43
43
  ],
44
44
  "format": "tar.gz",
45
45
  "checksum": {
46
46
  "algorithm": "sha256",
47
- "digest": "7e97715dff34b5056dcfb8d9338a266a174206dc07f40d19f44c9c7b5a117403"
47
+ "digest": "826fa672d5d4c21eb6691a7351506d1108dcbcf72630d06b7ced532cda823dd0"
48
48
  }
49
49
  },
50
50
  "darwin-x64": {
51
51
  "name": "pogo_Darwin_x86_64.tar.gz",
52
- "url": "https://github.com/pogo-vcs/pogo/releases/download/v1.3.2/pogo_Darwin_x86_64.tar.gz",
52
+ "url": "https://github.com/pogo-vcs/pogo/releases/download/v1.5.0/pogo_Darwin_x86_64.tar.gz",
53
53
  "bins": [
54
54
  "pogo"
55
55
  ],
56
56
  "format": "tar.gz",
57
57
  "checksum": {
58
58
  "algorithm": "sha256",
59
- "digest": "8432bab29e348aa406f11a04092249a4757ce5edb572613ea82d9bd246b8e221"
59
+ "digest": "c17840353870c682719ca6e965174ff784312af7675b5384abf4ae09535047e0"
60
60
  }
61
61
  },
62
62
  "linux-x64": {
63
63
  "name": "pogo_Linux_x86_64.tar.gz",
64
- "url": "https://github.com/pogo-vcs/pogo/releases/download/v1.3.2/pogo_Linux_x86_64.tar.gz",
64
+ "url": "https://github.com/pogo-vcs/pogo/releases/download/v1.5.0/pogo_Linux_x86_64.tar.gz",
65
65
  "bins": [
66
66
  "pogo"
67
67
  ],
68
68
  "format": "tar.gz",
69
69
  "checksum": {
70
70
  "algorithm": "sha256",
71
- "digest": "1f1c04af2ccf65d65f9d4b4a3d28fc682cb287ffa43714a2c0fb066df1b114cf"
71
+ "digest": "bea7e12f52c860e4c34a71d2651c01e7e3e9676498ef986b5e89b42b13c633f3"
72
72
  }
73
73
  },
74
74
  "win32-arm64": {
75
75
  "name": "pogo_Windows_arm64.zip",
76
- "url": "https://github.com/pogo-vcs/pogo/releases/download/v1.3.2/pogo_Windows_arm64.zip",
76
+ "url": "https://github.com/pogo-vcs/pogo/releases/download/v1.5.0/pogo_Windows_arm64.zip",
77
77
  "bins": [
78
78
  "pogo.exe"
79
79
  ],
80
80
  "format": "zip",
81
81
  "checksum": {
82
82
  "algorithm": "sha256",
83
- "digest": "239dd71db0e910c26552192f3243f7590e87bdc69038875969c045a875feb089"
83
+ "digest": "bcec7fd0c1c5ce91ce525d3a34b6f1da9e815215179e23ec4b75a316ebbd5a29"
84
84
  }
85
85
  },
86
86
  "win32-x64": {
87
87
  "name": "pogo_Windows_x86_64.zip",
88
- "url": "https://github.com/pogo-vcs/pogo/releases/download/v1.3.2/pogo_Windows_x86_64.zip",
88
+ "url": "https://github.com/pogo-vcs/pogo/releases/download/v1.5.0/pogo_Windows_x86_64.zip",
89
89
  "bins": [
90
90
  "pogo.exe"
91
91
  ],
92
92
  "format": "zip",
93
93
  "checksum": {
94
94
  "algorithm": "sha256",
95
- "digest": "4441bfc4e34591fc5329c6b69889d84fda2d371357aa89c3efcd5f601c09987d"
95
+ "digest": "00890acd2b8a0e2477e2d7a7dc544042de7928af6b2789cc863d8c3208231b46"
96
96
  }
97
97
  }
98
98
  }