git-smart-flow 0.3.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.
- package/CHANGELOG.md +33 -0
- package/LICENSE +21 -0
- package/README.md +130 -0
- package/bin/git-smart-flow.js +2 -0
- package/bin/gsf.js +2 -0
- package/bin/gsfc.js +3 -0
- package/bin/gsfm.js +3 -0
- package/bin/gsfp.js +3 -0
- package/bin/gsfpr.js +3 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +214 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/aliases.d.ts +2 -0
- package/dist/commands/aliases.js +37 -0
- package/dist/commands/aliases.js.map +1 -0
- package/dist/commands/branch.d.ts +2 -0
- package/dist/commands/branch.js +414 -0
- package/dist/commands/branch.js.map +1 -0
- package/dist/commands/commit-message.d.ts +7 -0
- package/dist/commands/commit-message.js +95 -0
- package/dist/commands/commit-message.js.map +1 -0
- package/dist/commands/commit.d.ts +3 -0
- package/dist/commands/commit.js +597 -0
- package/dist/commands/commit.js.map +1 -0
- package/dist/commands/config.d.ts +2 -0
- package/dist/commands/config.js +88 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/doctor.d.ts +2 -0
- package/dist/commands/doctor.js +246 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/info.d.ts +2 -0
- package/dist/commands/info.js +155 -0
- package/dist/commands/info.js.map +1 -0
- package/dist/commands/install-hooks.d.ts +2 -0
- package/dist/commands/install-hooks.js +66 -0
- package/dist/commands/install-hooks.js.map +1 -0
- package/dist/commands/log.d.ts +2 -0
- package/dist/commands/log.js +101 -0
- package/dist/commands/log.js.map +1 -0
- package/dist/commands/menu.d.ts +2 -0
- package/dist/commands/menu.js +297 -0
- package/dist/commands/menu.js.map +1 -0
- package/dist/commands/merge.d.ts +6 -0
- package/dist/commands/merge.js +128 -0
- package/dist/commands/merge.js.map +1 -0
- package/dist/commands/pr.d.ts +2 -0
- package/dist/commands/pr.js +731 -0
- package/dist/commands/pr.js.map +1 -0
- package/dist/commands/push.d.ts +7 -0
- package/dist/commands/push.js +225 -0
- package/dist/commands/push.js.map +1 -0
- package/dist/commands/reflog.d.ts +2 -0
- package/dist/commands/reflog.js +162 -0
- package/dist/commands/reflog.js.map +1 -0
- package/dist/commands/repo-init.d.ts +2 -0
- package/dist/commands/repo-init.js +466 -0
- package/dist/commands/repo-init.js.map +1 -0
- package/dist/commands/revert.d.ts +7 -0
- package/dist/commands/revert.js +694 -0
- package/dist/commands/revert.js.map +1 -0
- package/dist/commands/setup.d.ts +2 -0
- package/dist/commands/setup.js +86 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/stash.d.ts +2 -0
- package/dist/commands/stash.js +130 -0
- package/dist/commands/stash.js.map +1 -0
- package/dist/commands/sync.d.ts +2 -0
- package/dist/commands/sync.js +335 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/tag.d.ts +2 -0
- package/dist/commands/tag.js +163 -0
- package/dist/commands/tag.js.map +1 -0
- package/dist/commands/validate.d.ts +2 -0
- package/dist/commands/validate.js +203 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/config/config.d.ts +10 -0
- package/dist/config/config.js +126 -0
- package/dist/config/config.js.map +1 -0
- package/dist/git/ai-context-builder.d.ts +11 -0
- package/dist/git/ai-context-builder.js +112 -0
- package/dist/git/ai-context-builder.js.map +1 -0
- package/dist/git/convention-detector.d.ts +3 -0
- package/dist/git/convention-detector.js +211 -0
- package/dist/git/convention-detector.js.map +1 -0
- package/dist/git/ensure-repo.d.ts +7 -0
- package/dist/git/ensure-repo.js +141 -0
- package/dist/git/ensure-repo.js.map +1 -0
- package/dist/git/gitignore.d.ts +8 -0
- package/dist/git/gitignore.js +261 -0
- package/dist/git/gitignore.js.map +1 -0
- package/dist/git/remote-setup.d.ts +2 -0
- package/dist/git/remote-setup.js +129 -0
- package/dist/git/remote-setup.js.map +1 -0
- package/dist/git/repo.d.ts +73 -0
- package/dist/git/repo.js +308 -0
- package/dist/git/repo.js.map +1 -0
- package/dist/git/validate.d.ts +36 -0
- package/dist/git/validate.js +113 -0
- package/dist/git/validate.js.map +1 -0
- package/dist/providers/base.provider.d.ts +10 -0
- package/dist/providers/base.provider.js +40 -0
- package/dist/providers/base.provider.js.map +1 -0
- package/dist/providers/claude.provider.d.ts +14 -0
- package/dist/providers/claude.provider.js +85 -0
- package/dist/providers/claude.provider.js.map +1 -0
- package/dist/providers/copilot.provider.d.ts +12 -0
- package/dist/providers/copilot.provider.js +88 -0
- package/dist/providers/copilot.provider.js.map +1 -0
- package/dist/providers/heuristic.provider.d.ts +9 -0
- package/dist/providers/heuristic.provider.js +163 -0
- package/dist/providers/heuristic.provider.js.map +1 -0
- package/dist/providers/ollama.provider.d.ts +14 -0
- package/dist/providers/ollama.provider.js +83 -0
- package/dist/providers/ollama.provider.js.map +1 -0
- package/dist/providers/openai.provider.d.ts +14 -0
- package/dist/providers/openai.provider.js +84 -0
- package/dist/providers/openai.provider.js.map +1 -0
- package/dist/providers/provider.factory.d.ts +5 -0
- package/dist/providers/provider.factory.js +51 -0
- package/dist/providers/provider.factory.js.map +1 -0
- package/dist/security/scanner.d.ts +13 -0
- package/dist/security/scanner.js +138 -0
- package/dist/security/scanner.js.map +1 -0
- package/dist/types/index.d.ts +146 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/ux/components/BranchTree.d.ts +8 -0
- package/dist/ux/components/BranchTree.js +57 -0
- package/dist/ux/components/BranchTree.js.map +1 -0
- package/dist/ux/components/CommitProposal.d.ts +13 -0
- package/dist/ux/components/CommitProposal.js +127 -0
- package/dist/ux/components/CommitProposal.js.map +1 -0
- package/dist/ux/components/DiagnosticReport.d.ts +18 -0
- package/dist/ux/components/DiagnosticReport.js +19 -0
- package/dist/ux/components/DiagnosticReport.js.map +1 -0
- package/dist/ux/components/ErrorBox.d.ts +7 -0
- package/dist/ux/components/ErrorBox.js +9 -0
- package/dist/ux/components/ErrorBox.js.map +1 -0
- package/dist/ux/components/FileSelector.d.ts +14 -0
- package/dist/ux/components/FileSelector.js +87 -0
- package/dist/ux/components/FileSelector.js.map +1 -0
- package/dist/ux/components/Logo.d.ts +6 -0
- package/dist/ux/components/Logo.js +21 -0
- package/dist/ux/components/Logo.js.map +1 -0
- package/dist/ux/components/RepoContext.d.ts +8 -0
- package/dist/ux/components/RepoContext.js +17 -0
- package/dist/ux/components/RepoContext.js.map +1 -0
- package/dist/ux/components/SecurityAlert.d.ts +9 -0
- package/dist/ux/components/SecurityAlert.js +16 -0
- package/dist/ux/components/SecurityAlert.js.map +1 -0
- package/dist/ux/components/StatusDashboard.d.ts +14 -0
- package/dist/ux/components/StatusDashboard.js +36 -0
- package/dist/ux/components/StatusDashboard.js.map +1 -0
- package/dist/ux/components/SuccessBox.d.ts +7 -0
- package/dist/ux/components/SuccessBox.js +9 -0
- package/dist/ux/components/SuccessBox.js.map +1 -0
- package/dist/ux/components/ValidationReport.d.ts +16 -0
- package/dist/ux/components/ValidationReport.js +19 -0
- package/dist/ux/components/ValidationReport.js.map +1 -0
- package/dist/ux/components/WarningBox.d.ts +7 -0
- package/dist/ux/components/WarningBox.js +9 -0
- package/dist/ux/components/WarningBox.js.map +1 -0
- package/dist/ux/display.d.ts +21 -0
- package/dist/ux/display.js +96 -0
- package/dist/ux/display.js.map +1 -0
- package/dist/ux/hooks/useActivation.d.ts +8 -0
- package/dist/ux/hooks/useActivation.js +16 -0
- package/dist/ux/hooks/useActivation.js.map +1 -0
- package/dist/ux/hooks/useSpinner.d.ts +2 -0
- package/dist/ux/hooks/useSpinner.js +13 -0
- package/dist/ux/hooks/useSpinner.js.map +1 -0
- package/dist/ux/menu.d.ts +7 -0
- package/dist/ux/menu.js +56 -0
- package/dist/ux/menu.js.map +1 -0
- package/dist/ux/prompt.d.ts +7 -0
- package/dist/ux/prompt.js +361 -0
- package/dist/ux/prompt.js.map +1 -0
- package/dist/ux/renderer.d.ts +9 -0
- package/dist/ux/renderer.js +45 -0
- package/dist/ux/renderer.js.map +1 -0
- package/dist/ux/spinner.d.ts +6 -0
- package/dist/ux/spinner.js +42 -0
- package/dist/ux/spinner.js.map +1 -0
- package/dist/ux/statusbar.d.ts +2 -0
- package/dist/ux/statusbar.js +44 -0
- package/dist/ux/statusbar.js.map +1 -0
- package/dist/ux/theme.d.ts +37 -0
- package/dist/ux/theme.js +55 -0
- package/dist/ux/theme.js.map +1 -0
- package/package.json +125 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pr.js","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import { spawnSync } from 'child_process';
|
|
2
|
+
import { getConfig } from '../config/config.js';
|
|
3
|
+
import { ensureGitRepo } from '../git/ensure-repo.js';
|
|
4
|
+
import { validateBranchName } from '../git/validate.js';
|
|
5
|
+
import { getCurrentBranch, getAheadBehindCount, getCommitsSinceBase, getUpstream, isProtectedBranch, listRemotes, } from '../git/repo.js';
|
|
6
|
+
import { isCI } from '../ux/renderer.js';
|
|
7
|
+
import { blank, error, info, keyValue, section, success, warning } from '../ux/display.js';
|
|
8
|
+
import { confirmPrompt, inputPrompt, selectPrompt } from '../ux/prompt.js';
|
|
9
|
+
async function resolveRemote(cwd) {
|
|
10
|
+
const remotes = listRemotes(cwd);
|
|
11
|
+
if (remotes.length <= 1)
|
|
12
|
+
return remotes[0] ?? 'origin';
|
|
13
|
+
return selectPrompt('¿Qué remoto usar?', remotes);
|
|
14
|
+
}
|
|
15
|
+
async function handleDivergedPush(branch, upstream, cwd, opts) {
|
|
16
|
+
warning('Tu rama local y el remoto han divergido.');
|
|
17
|
+
info('Esto ocurre normalmente después de un rebase o de enmendar commits ya publicados.');
|
|
18
|
+
blank();
|
|
19
|
+
if (upstream) {
|
|
20
|
+
const { ahead, behind } = getAheadBehindCount(upstream, cwd);
|
|
21
|
+
keyValue('Commits locales no publicados', String(ahead));
|
|
22
|
+
keyValue('Commits remotos no en local', String(behind));
|
|
23
|
+
}
|
|
24
|
+
blank();
|
|
25
|
+
const action = await selectPrompt('¿Qué quieres hacer?', [
|
|
26
|
+
'Force push (--force-with-lease) — sobreescribir el remoto',
|
|
27
|
+
'Cancelar — resolver manualmente',
|
|
28
|
+
]);
|
|
29
|
+
if (!action.startsWith('Force')) {
|
|
30
|
+
info('Push cancelado. Para resolver manualmente:');
|
|
31
|
+
info(' git pull --rebase — trae los cambios remotos y reaplica los tuyos');
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
warning('⚠ OPERACIÓN DESTRUCTIVA — Reescribirá la historia del remoto');
|
|
35
|
+
warning('Esto puede afectar a otros colaboradores que tengan esta rama.');
|
|
36
|
+
blank();
|
|
37
|
+
const confirm = opts.yes
|
|
38
|
+
? branch
|
|
39
|
+
: await inputPrompt(`Escribe el nombre de la rama para confirmar: "${branch}"`);
|
|
40
|
+
if (confirm.trim() !== branch) {
|
|
41
|
+
info('Confirmación incorrecta. Force push cancelado.');
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const forceResult = spawnSync('git', ['push', '--force-with-lease'], {
|
|
45
|
+
cwd,
|
|
46
|
+
encoding: 'utf-8',
|
|
47
|
+
stdio: 'pipe',
|
|
48
|
+
});
|
|
49
|
+
if (forceResult.status === 0) {
|
|
50
|
+
success('Force push completado (--force-with-lease).');
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
error('Force push fallido:\n' + (forceResult.stderr ?? ''));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
async function runInkPush() {
|
|
57
|
+
const React = (await import('react')).default;
|
|
58
|
+
const { Box, Text } = await import('ink');
|
|
59
|
+
const { Select } = await import('@inkjs/ui');
|
|
60
|
+
const { renderInteractive } = await import('../ux/renderer.js');
|
|
61
|
+
const { theme } = await import('../ux/theme.js');
|
|
62
|
+
await import('../ux/components/WarningBox.js');
|
|
63
|
+
const cwd = process.cwd();
|
|
64
|
+
const config = getConfig();
|
|
65
|
+
const branch = getCurrentBranch(cwd);
|
|
66
|
+
const branchCheck = validateBranchName(branch);
|
|
67
|
+
if (!branchCheck.valid) {
|
|
68
|
+
error(`Invalid branch name: ${branchCheck.reason}`);
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
const upstream = getUpstream(cwd);
|
|
72
|
+
const { ahead, behind } = upstream ? getAheadBehindCount(upstream, cwd) : { ahead: 0, behind: 0 };
|
|
73
|
+
const isProtected = isProtectedBranch(branch, config.git.protectedBranches);
|
|
74
|
+
const recentCommits = upstream ? getCommitsSinceBase(upstream, cwd).slice(0, 5) : [];
|
|
75
|
+
if (ahead === 0 && upstream) {
|
|
76
|
+
section('Push');
|
|
77
|
+
info('Nothing to push — already up to date.');
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
const options = [
|
|
81
|
+
{
|
|
82
|
+
label: isProtected ? '⚠️ Sí, hacer push (rama protegida)' : 'Sí, hacer push',
|
|
83
|
+
value: 'push',
|
|
84
|
+
},
|
|
85
|
+
{ label: 'Cancelar', value: 'cancel' },
|
|
86
|
+
];
|
|
87
|
+
const { useState, useEffect } = await import('react');
|
|
88
|
+
function PushUI({ onChoice }) {
|
|
89
|
+
const [active, setActive] = useState(false);
|
|
90
|
+
useEffect(() => {
|
|
91
|
+
const t = setTimeout(() => setActive(true), 120);
|
|
92
|
+
return () => clearTimeout(t);
|
|
93
|
+
}, []);
|
|
94
|
+
const width = Math.min(process.stdout.columns ?? 80, 60);
|
|
95
|
+
return React.createElement(Box, { flexDirection: 'column', paddingX: 1, width }, React.createElement(Text, { bold: true, color: 'white' }, 'Push validado'), React.createElement(Text, { color: theme.muted }, '━'.repeat(Math.min(width - 4, 40))), React.createElement(Text, null), React.createElement(Box, {
|
|
96
|
+
flexDirection: 'column',
|
|
97
|
+
borderStyle: 'round',
|
|
98
|
+
borderColor: isProtected ? theme.warning : theme.border,
|
|
99
|
+
paddingX: 1,
|
|
100
|
+
marginBottom: 1,
|
|
101
|
+
width: width - 2,
|
|
102
|
+
}, React.createElement(Text, null, React.createElement(Text, { color: theme.muted }, 'Rama: '), React.createElement(Text, { color: 'white' }, branch), isProtected ? React.createElement(Text, { color: theme.warning }, ' ⚠ PROTECTED') : null), React.createElement(Text, null, React.createElement(Text, { color: theme.muted }, 'Destino: '), React.createElement(Text, { color: 'white' }, upstream ?? `origin/${branch}`)), React.createElement(Text, null, React.createElement(Text, { color: theme.muted }, 'Commits: '), React.createElement(Text, { color: ahead > 0 ? theme.info : theme.muted }, `${ahead} commits pendientes`)), behind > 0
|
|
103
|
+
? React.createElement(Text, { color: theme.warning }, ` ⚠ Behind por ${behind} commits — considera pull primero`)
|
|
104
|
+
: null), recentCommits.length > 0
|
|
105
|
+
? React.createElement(Box, { flexDirection: 'column', marginBottom: 1 }, ...recentCommits.map((c, i) => React.createElement(Text, { key: i, color: theme.muted }, ` ● ${c}`)))
|
|
106
|
+
: null, React.createElement(Text, { bold: true, color: 'white' }, '¿Confirmas el push?'), React.createElement(Text, null), React.createElement(Select, { isDisabled: !active, options, onChange: onChoice }));
|
|
107
|
+
}
|
|
108
|
+
const choice = await renderInteractive((resolve) => React.createElement(PushUI, { onChoice: resolve }));
|
|
109
|
+
if (choice !== 'push') {
|
|
110
|
+
info('Push cancelado.');
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
const opts = {};
|
|
114
|
+
try {
|
|
115
|
+
const remote = upstream ? undefined : await resolveRemote(cwd);
|
|
116
|
+
const pushArgs = remote ? ['--set-upstream', remote, branch] : [];
|
|
117
|
+
const result = spawnSync('git', ['push', ...pushArgs], {
|
|
118
|
+
cwd,
|
|
119
|
+
encoding: 'utf-8',
|
|
120
|
+
stdio: 'pipe',
|
|
121
|
+
});
|
|
122
|
+
if (result.status === 0) {
|
|
123
|
+
success('Push completado.');
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
const stderr = (result.stderr ?? '').toString();
|
|
127
|
+
const isDiverged = stderr.includes('rejected') &&
|
|
128
|
+
(stderr.includes('non-fast-forward') ||
|
|
129
|
+
stderr.includes('fetch first') ||
|
|
130
|
+
stderr.includes('Updates were rejected'));
|
|
131
|
+
if (isDiverged) {
|
|
132
|
+
await handleDivergedPush(branch, upstream, cwd, opts);
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
error('git push failed:\n' + stderr);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
error('git push failed.');
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
async function runPlainPush(opts = {}) {
|
|
144
|
+
const cwd = process.cwd();
|
|
145
|
+
const config = getConfig();
|
|
146
|
+
const branch = getCurrentBranch(cwd);
|
|
147
|
+
const branchCheck = validateBranchName(branch);
|
|
148
|
+
if (!branchCheck.valid) {
|
|
149
|
+
error(`Invalid branch name: ${branchCheck.reason}`);
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
if (isProtectedBranch(branch, config.git.protectedBranches)) {
|
|
153
|
+
warning(`Pushing to protected branch: "${branch}"`);
|
|
154
|
+
const proceed = opts.yes || opts.dryRun ? true : await confirmPrompt('Are you sure?', false);
|
|
155
|
+
if (!proceed) {
|
|
156
|
+
info('Push cancelled.');
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
const upstream = getUpstream(cwd);
|
|
161
|
+
const { ahead, behind } = upstream ? getAheadBehindCount(upstream, cwd) : { ahead: 0, behind: 0 };
|
|
162
|
+
section('Push Summary');
|
|
163
|
+
keyValue('Branch', branch);
|
|
164
|
+
keyValue('Upstream', upstream ?? 'not set');
|
|
165
|
+
keyValue('Commits to push', String(ahead));
|
|
166
|
+
if (behind > 0)
|
|
167
|
+
warning(`Behind upstream by ${behind} commit(s) — consider pulling first`);
|
|
168
|
+
blank();
|
|
169
|
+
if (ahead === 0 && upstream) {
|
|
170
|
+
info('Nothing to push — already up to date.');
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
if (opts.dryRun) {
|
|
174
|
+
const dest = upstream ?? `origin/${branch}`;
|
|
175
|
+
info(`[DRY RUN] Would push ${ahead} commit(s) from "${branch}" to "${dest}".`);
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
const confirmed = opts.yes ? true : await confirmPrompt(`Push branch "${branch}" to remote?`);
|
|
179
|
+
if (!confirmed) {
|
|
180
|
+
info('Push cancelled.');
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
try {
|
|
184
|
+
const remote = upstream ? undefined : await resolveRemote(cwd);
|
|
185
|
+
const pushArgs = remote ? ['--set-upstream', remote, branch] : [];
|
|
186
|
+
const result = spawnSync('git', ['push', ...pushArgs], {
|
|
187
|
+
cwd,
|
|
188
|
+
encoding: 'utf-8',
|
|
189
|
+
stdio: 'pipe',
|
|
190
|
+
});
|
|
191
|
+
if (result.status === 0) {
|
|
192
|
+
success('Push completed.');
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
const stderr = (result.stderr ?? '').toString();
|
|
196
|
+
const isDiverged = stderr.includes('rejected') &&
|
|
197
|
+
(stderr.includes('non-fast-forward') ||
|
|
198
|
+
stderr.includes('fetch first') ||
|
|
199
|
+
stderr.includes('Updates were rejected'));
|
|
200
|
+
if (isDiverged) {
|
|
201
|
+
await handleDivergedPush(branch, upstream, cwd, opts);
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
error('git push failed:\n' + stderr);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
catch {
|
|
209
|
+
error('git push failed.');
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
export async function runPush(opts = {}) {
|
|
213
|
+
const cwd = process.cwd();
|
|
214
|
+
if (!(await ensureGitRepo(cwd)))
|
|
215
|
+
return;
|
|
216
|
+
if (opts.dryRun)
|
|
217
|
+
info('[DRY RUN] No changes will be made.\n');
|
|
218
|
+
if (isCI() || opts.dryRun || opts.yes) {
|
|
219
|
+
await runPlainPush(opts);
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
await runInkPush();
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
//# sourceMappingURL=push.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { spawnSync } from 'child_process';
|
|
2
|
+
import { ensureGitRepo } from '../git/ensure-repo.js';
|
|
3
|
+
import { blank, error, info, keyValue, section, success, warning } from '../ux/display.js';
|
|
4
|
+
import { confirmPrompt, inputPrompt, selectPrompt } from '../ux/prompt.js';
|
|
5
|
+
// ── Git helpers ────────────────────────────────────────────────────────────
|
|
6
|
+
function getReflog(limit, cwd) {
|
|
7
|
+
const r = spawnSync('git', ['reflog', `--max-count=${limit}`, '--format=%H\x1f%h\x1f%gd\x1f%gs\x1f%ar'], { cwd, encoding: 'utf-8' });
|
|
8
|
+
if (r.status !== 0 || !r.stdout?.trim())
|
|
9
|
+
return [];
|
|
10
|
+
return r.stdout
|
|
11
|
+
.split('\n')
|
|
12
|
+
.filter(Boolean)
|
|
13
|
+
.map((line) => {
|
|
14
|
+
const [sha, shortSha, refName, description, ago] = line.split('\x1f');
|
|
15
|
+
// Extract action from description: "commit: message" → "commit"
|
|
16
|
+
const colonIdx = (description ?? '').indexOf(':');
|
|
17
|
+
const action = colonIdx > 0 ? (description ?? '').slice(0, colonIdx).trim() : 'unknown';
|
|
18
|
+
return {
|
|
19
|
+
sha: sha ?? '',
|
|
20
|
+
shortSha: shortSha ?? '',
|
|
21
|
+
refName: refName ?? '',
|
|
22
|
+
action,
|
|
23
|
+
description: description ?? '',
|
|
24
|
+
ago: ago ?? '',
|
|
25
|
+
};
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
// ── Recovery flow ──────────────────────────────────────────────────────────
|
|
29
|
+
async function flowRecover(entries, cwd) {
|
|
30
|
+
const options = entries.map((e) => `${e.refName.padEnd(12)} ${e.shortSha} ${e.description} (${e.ago})`);
|
|
31
|
+
options.push('← Cancelar');
|
|
32
|
+
const picked = await selectPrompt('Selecciona la entrada a recuperar:', options);
|
|
33
|
+
if (picked.includes('Cancelar'))
|
|
34
|
+
return;
|
|
35
|
+
const idx = options.indexOf(picked);
|
|
36
|
+
const entry = entries[idx];
|
|
37
|
+
if (!entry)
|
|
38
|
+
return;
|
|
39
|
+
blank();
|
|
40
|
+
keyValue('Entrada seleccionada', entry.refName);
|
|
41
|
+
keyValue('Commit', `${entry.shortSha} — ${entry.description}`);
|
|
42
|
+
keyValue('Hace', entry.ago);
|
|
43
|
+
blank();
|
|
44
|
+
const action = await selectPrompt('¿Cómo quieres recuperar este estado?', [
|
|
45
|
+
'Crear rama nueva desde este punto',
|
|
46
|
+
'Reset soft a este punto (cambios se quedan staged)',
|
|
47
|
+
'Cherry-pick este commit (traer solo este commit)',
|
|
48
|
+
'← Cancelar',
|
|
49
|
+
]);
|
|
50
|
+
if (action.includes('rama nueva')) {
|
|
51
|
+
const branchName = await inputPrompt('Nombre de la nueva rama');
|
|
52
|
+
if (!branchName.trim())
|
|
53
|
+
return;
|
|
54
|
+
const r = spawnSync('git', ['checkout', '-b', branchName.trim(), entry.sha], {
|
|
55
|
+
cwd,
|
|
56
|
+
encoding: 'utf-8',
|
|
57
|
+
stdio: 'pipe',
|
|
58
|
+
});
|
|
59
|
+
if (r.status === 0) {
|
|
60
|
+
success(`Rama "${branchName.trim()}" creada desde ${entry.shortSha}.`);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
error('Error: ' + (r.stderr ?? ''));
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
else if (action.includes('Reset soft')) {
|
|
67
|
+
warning('Esto moverá HEAD a este commit. Los cambios posteriores quedarán staged.');
|
|
68
|
+
const confirmed = await confirmPrompt(`¿Hacer reset soft a ${entry.shortSha}?`);
|
|
69
|
+
if (!confirmed)
|
|
70
|
+
return;
|
|
71
|
+
const r = spawnSync('git', ['reset', '--soft', entry.sha], {
|
|
72
|
+
cwd,
|
|
73
|
+
encoding: 'utf-8',
|
|
74
|
+
stdio: 'pipe',
|
|
75
|
+
});
|
|
76
|
+
if (r.status === 0) {
|
|
77
|
+
success(`Reset soft a ${entry.shortSha} completado.`);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
error('Error: ' + (r.stderr ?? ''));
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
else if (action.includes('Cherry-pick')) {
|
|
84
|
+
const r = spawnSync('git', ['cherry-pick', entry.sha], { cwd, stdio: 'inherit' });
|
|
85
|
+
if (r.status === 0) {
|
|
86
|
+
success('Cherry-pick completado.');
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
warning('Cherry-pick con conflictos. Resuelve los conflictos y ejecuta "git cherry-pick --continue".');
|
|
90
|
+
warning('Para abortar: git cherry-pick --abort');
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
// ── Diff flow ──────────────────────────────────────────────────────────────
|
|
95
|
+
async function flowDiff(entries, cwd) {
|
|
96
|
+
const options = entries.map((e) => `${e.refName.padEnd(12)} ${e.shortSha} ${e.description} (${e.ago})`);
|
|
97
|
+
options.push('← Cancelar');
|
|
98
|
+
const picked = await selectPrompt('Selecciona la entrada para comparar con HEAD:', options);
|
|
99
|
+
if (picked.includes('Cancelar'))
|
|
100
|
+
return;
|
|
101
|
+
const idx = options.indexOf(picked);
|
|
102
|
+
const entry = entries[idx];
|
|
103
|
+
if (!entry)
|
|
104
|
+
return;
|
|
105
|
+
blank();
|
|
106
|
+
info(`Diferencia entre HEAD y ${entry.refName} (${entry.shortSha}):`);
|
|
107
|
+
blank();
|
|
108
|
+
const statR = spawnSync('git', ['diff', '--stat', entry.sha, 'HEAD'], {
|
|
109
|
+
cwd,
|
|
110
|
+
encoding: 'utf-8',
|
|
111
|
+
stdio: 'pipe',
|
|
112
|
+
});
|
|
113
|
+
if (statR.stdout?.trim()) {
|
|
114
|
+
console.log(statR.stdout);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
info('No hay diferencias o el commit no es accesible.');
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
// ── Main command ───────────────────────────────────────────────────────────
|
|
121
|
+
export async function runReflog() {
|
|
122
|
+
const cwd = process.cwd();
|
|
123
|
+
if (!(await ensureGitRepo(cwd)))
|
|
124
|
+
return;
|
|
125
|
+
const LIMIT = 30;
|
|
126
|
+
let running = true;
|
|
127
|
+
while (running) {
|
|
128
|
+
const entries = getReflog(LIMIT, cwd);
|
|
129
|
+
if (entries.length === 0) {
|
|
130
|
+
section('Reflog');
|
|
131
|
+
info('No hay entradas en el reflog. El repositorio puede no tener commits.');
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
section('Reflog — historial de movimientos de HEAD');
|
|
135
|
+
info(`Mostrando las últimas ${entries.length} entradas`);
|
|
136
|
+
blank();
|
|
137
|
+
entries.forEach((e, i) => {
|
|
138
|
+
const idx = String(i).padStart(2, ' ');
|
|
139
|
+
const sha = e.shortSha.padEnd(9, ' ');
|
|
140
|
+
const ref = e.refName.padEnd(12, ' ');
|
|
141
|
+
const ago = e.ago.padEnd(14, ' ');
|
|
142
|
+
console.log(` ${idx} ${sha} ${ref} ${ago} ${e.description}`);
|
|
143
|
+
});
|
|
144
|
+
blank();
|
|
145
|
+
const menuOptions = [
|
|
146
|
+
'🔍 Recuperar una entrada del reflog',
|
|
147
|
+
'↩️ Ver diferencia entre HEAD y una entrada',
|
|
148
|
+
'← Salir',
|
|
149
|
+
];
|
|
150
|
+
const choice = await selectPrompt('¿Qué quieres hacer?', menuOptions);
|
|
151
|
+
if (choice.includes('Recuperar')) {
|
|
152
|
+
await flowRecover(entries, cwd);
|
|
153
|
+
}
|
|
154
|
+
else if (choice.includes('diferencia')) {
|
|
155
|
+
await flowDiff(entries, cwd);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
running = false;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=reflog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reflog.js","sourceRoot":"","sources":["../../src/commands/reflog.ts"],"names":[],"mappings":"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"}
|