git-watchtower 1.9.6 → 1.9.8

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.
@@ -1691,11 +1691,17 @@ async function pollGitChanges() {
1691
1691
  for (const knownName of knownBranchNames) {
1692
1692
  if (!fetchedBranchNames.has(knownName)) {
1693
1693
  // This branch was deleted from remote
1694
+ // Check if already present in allBranches (avoid duplicates)
1695
+ const alreadyInList = allBranches.some(b => b.name === knownName);
1696
+ if (alreadyInList) continue;
1697
+
1694
1698
  const existingInList = currentBranches.find(b => b.name === knownName);
1695
- if (existingInList && !existingInList.isDeleted) {
1696
- existingInList.isDeleted = true;
1697
- existingInList.deletedAt = now;
1698
- addLog(`Branch deleted: ${knownName}`, 'warning');
1699
+ if (existingInList) {
1700
+ if (!existingInList.isDeleted) {
1701
+ existingInList.isDeleted = true;
1702
+ existingInList.deletedAt = now;
1703
+ addLog(`Branch deleted: ${knownName}`, 'warning');
1704
+ }
1699
1705
  // Keep it in the list temporarily
1700
1706
  allBranches.push(existingInList);
1701
1707
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "git-watchtower",
3
- "version": "1.9.6",
3
+ "version": "1.9.8",
4
4
  "description": "Terminal-based Git branch monitor with activity sparklines and optional dev server with live reload",
5
5
  "main": "bin/git-watchtower.js",
6
6
  "bin": {
@@ -194,12 +194,12 @@ function renderBranchList(state, write) {
194
194
  const aheadBehind = state.aheadBehindCache ? state.aheadBehindCache.get(branch.name) : null;
195
195
 
196
196
  // Diff stats: two right-justified columns, always reserving space for alignment
197
- // Col 1: "+N/-N commits" right-justified in 16 chars
198
- // Col 2: "+N/-N lines" right-justified in 14 chars
199
- // Total: 16 + 1(gap) + 14 + 1(gap) = 32 chars always reserved
200
- const COL_COMMITS = 16;
201
- const COL_LINES = 14;
202
- const DIFF_TAG_FIXED_LEN = COL_COMMITS + 1 + COL_LINES + 1; // 32 total
197
+ // Col 1: "+N/-N commits" right-justified in 18 chars (accommodates e.g. "+18/-967 commits")
198
+ // Col 2: "+N/-N lines" right-justified in 18 chars (accommodates e.g. "+3.5k/-1.9k lines")
199
+ // Total: 18 + 1(gap) + 18 + 1(gap) = 38 chars always reserved
200
+ const COL_COMMITS = 18;
201
+ const COL_LINES = 18;
202
+ const DIFF_TAG_FIXED_LEN = COL_COMMITS + 1 + COL_LINES + 1; // 38 total
203
203
  let diffTag = ' '.repeat(DIFF_TAG_FIXED_LEN); // blank by default for alignment
204
204
  if (!isBranchBase && !branch.isDeleted && aheadBehind) {
205
205
  const a = aheadBehind.ahead;