just-git 0.1.11 → 0.1.12
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/dist/index.js +66 -66
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -28,8 +28,8 @@ Run
|
|
|
28
28
|
`)){if(!s)continue;let i=_d(s);i&&o.push(i)}return o}function wa(e){return`${e.oldHash} ${e.newHash} ${e.name} <${e.email}> ${e.timestamp} ${e.tz} ${e.message}`}async function bn(e,t,n){let r=ps(e,t);if(await Qn(e.fs,r),n.length===0){await e.fs.writeFile(r,"");return}let o=`${n.map(wa).join(`
|
|
29
29
|
`)}
|
|
30
30
|
`;await e.fs.writeFile(r,o)}async function Ue(e,t,n){let r=ps(e,t);await Qn(e.fs,r);let o=`${wa(n)}
|
|
31
|
-
`;if(await e.fs.exists(r)){let s=await e.fs.readFile(r);await e.fs.writeFile(r,s+o)}else await e.fs.writeFile(r,o)}async function Rr(e,t){let n=ps(e,t);await e.fs.exists(n)&&await e.fs.rm(n)}async function
|
|
32
|
-
`)){let s=ol(o,t);s&&r.push(s)}return{patterns:r,src:n}}function il(e,t){let{pattern:n,patternLen:r,nowildcardLen:o,flags:s}=t;if(o===r)return e===n;if(s&Ia){let i=n.slice(1);return e.length>=i.length&&e.endsWith(i)}return Gn(n,e,2)===0}function al(e,t){let{base:n}=t,{pattern:r,patternLen:o,nowildcardLen:s}=t;r[0]==="/"&&(r=r.slice(1),o--,s=Math.max(0,s-1));let i=n.length;if(i>0&&(e.length<i+1||e[i]!=="/"||!e.startsWith(n)))return!1;let a=i>0?e.slice(i+1):e,c=a.length;if(s>0){if(s>c||a.slice(0,s)!==r.slice(0,s))return!1;if(o===s&&c===s)return!0}return Gn(r,a,2)===0}function jo(e,t,n){let r=e.lastIndexOf("/")>=0?e.slice(e.lastIndexOf("/")+1):e;for(let o=n.patterns.length-1;o>=0;o--){let s=n.patterns[o];if(s&&!(s.flags&Oa&&!t)){if(s.flags&$a){if(s.base&&!e.startsWith(`${s.base}/`))continue;if(il(r,s))return s;continue}if(al(e,s))return s}}return null}function Wt(e,t,n){for(let r=e.dirPatterns.length-1;r>=0;r--){let o=e.dirPatterns[r],s=jo(t,n,o);if(s)return s.flags&bs?"not-ignored":"ignored"}if(e.excludeFile){let r=jo(t,n,e.excludeFile);if(r)return r.flags&bs?"not-ignored":"ignored"}if(e.globalExclude){let r=jo(t,n,e.globalExclude);if(r)return r.flags&bs?"not-ignored":"ignored"}return"undecided"}async function tr(e){let t={dirPatterns:[],excludeFile:null,globalExclude:null},n=T(e.gitDir,"info","exclude");try{let r=await e.fs.readFile(n);t.excludeFile=Tr(r,"",n)}catch{}try{let r=await Dt(e,"core.excludesFile");if(r)try{let o=await e.fs.readFile(r);t.globalExclude=Tr(o,"",r)}catch{}}catch{}return t}function Nn(e,t,n,r){let s=Tr(t,n===""?"":n,r);return{...e,dirPatterns:[...e.dirPatterns,s]}}var $a,Ia,Oa,bs,Es=ye(()=>{"use strict";Xe();de();ws();$a=1,Ia=4,Oa=8,bs=16});async function Rt(e,t){if(!e.workTree)throw new Error("Cannot diff working tree in a bare repository");let n=[];for(let s of t.entries){if(s.stage!==0)continue;let i=T(e.workTree,s.path),a;try{a=await ot(e.fs,i)}catch{a=null}if(!a){n.push({path:s.path,status:"deleted",indexHash:s.hash});continue}if(!a.isFile&&!a.isSymbolicLink){n.push({path:s.path,status:"deleted",indexHash:s.hash});continue}await yn(e.fs,i)!==s.hash&&n.push({path:s.path,status:"modified",indexHash:s.hash})}let r=new Set(t.entries.map(s=>s.path)),o=await Ze(e,e.workTree,"");for(let s of o)r.has(s)||n.push({path:s,status:"untracked"});return n.sort((s,i)=>ke(s.path,i.path))}async function rt(e,t){if(!e.workTree)throw new Error("Cannot checkout in a bare repository");let n=await pe(e,t.hash);if(n.type!=="blob")throw new Error(`Expected blob for ${t.path}, got ${n.type}`);let r=T(e.workTree,t.path),o=r.lastIndexOf("/");if(o>0&&await e.fs.mkdir(r.slice(0,o),{recursive:!0}),t.mode!=null&&tn(t.mode)&&e.fs.symlink){await ot(e.fs,r).then(()=>!0).catch(()=>!1)&&await e.fs.rm(r,{force:!0});let i=fl.decode(n.content);await e.fs.symlink(i,r)}else{if(e.fs.lstat)try{(await e.fs.lstat(r)).isSymbolicLink&&await e.fs.rm(r,{force:!0})}catch{}await e.fs.writeFile(r,n.content)}}async function Ha(e,t){let n=await We(e,t);for(let r of n)await rt(e,r)}async function nn(e,t,n){if(!e.workTree)throw new Error("Cannot stage in a bare repository");let r=T(e.workTree,n);if(!await e.fs.exists(r))throw new Error(`Path does not exist: ${n}`);let o=await ot(e.fs,r);if(o.isSymbolicLink&&e.fs.readlink){let f=await e.fs.readlink(r),d=cl.encode(f),u=await Re(e,"blob",d),l={path:n,mode:40960,hash:u,stage:0,stat:{...xe(),size:d.byteLength}};return{index:ht(t,l),hash:u}}let s=await e.fs.readFileBuffer(r),i=await Re(e,"blob",s),a=o.mode!=null?dl(o.mode):33188,c={path:n,mode:a,hash:i,stage:0,stat:{...xe(),size:s.byteLength}};return{index:ht(t,c),hash:i}}async function Ze(e,t,n,r){let o=r?.skipIgnore??!1,s=null;if(!o){s=r?._ignore??await tr(e);let c=T(t,".gitignore");try{let f=await e.fs.readFile(c);s=Nn(s,f,n,c)}catch{}}let i=[],a=await e.fs.readdir(t);for(let c of a){if(n===""&&c===".git")continue;let f=T(t,c),d=n?`${n}/${c}`:c,u=await ot(e.fs,f);if(u.isSymbolicLink){if(s&&Wt(s,d,!1)==="ignored")continue;i.push(d)}else if(u.isDirectory){if(s&&Wt(s,d,!0)==="ignored")continue;let l=await Ze(e,f,d,{skipIgnore:o,_ignore:s??void 0});i.push(...l)}else if(u.isFile){if(s&&Wt(s,d,!1)==="ignored")continue;i.push(d)}}return i}function dl(e){return e>511?e:e&73?33261:33188}async function _n(e,t,n){if(t===n||t==="/"||!t.startsWith(n)||!await e.exists(t)||!(await e.stat(t)).isDirectory)return;(await e.readdir(t)).length===0&&(await e.rm(t),await _n(e,Nt(t),n))}var cl,fl,Je=ye(()=>{"use strict";te();Es();Ee();se();de();Ln();Ie();cl=new TextEncoder,fl=new TextDecoder});function Lo(e){return e.existsOnDisk&&e.indexHash===null}async function ll(e,t,n){let r=await Promise.all(t.map(h=>fe(e,h.treeHash))),o=new Map,s=new Set;for(let h of n.entries)h.stage===0?o.set(h.path,h):s.add(h.path);let i=e.workTree?new Set(await Ze(e,e.workTree,"",{skipIgnore:!0})):new Set,a=null,c=async()=>(a===null&&(a=e.workTree?new Set(await Ze(e,e.workTree,"")):new Set),a),f=new Set;for(let h of r)for(let p of h.keys())f.add(p);let d=new Set;for(let h of n.entries)f.has(h.path)||d.add(h.path);for(let h of i)f.has(h)||d.add(h);let u=Array.from(f).sort().concat(Array.from(d).sort()),l=(h,p)=>r[h]?.get(p),m=[];for(let h of u){let p=null,g=null,w=null,k=null,b=null;if(r.length===1){let G=l(0,h);w=G?.hash??null,b=G?.mode??null}else if(r.length===2){let G=l(0,h),L=l(1,h);g=G?.hash??null,k=G?.mode??null,w=L?.hash??null,b=L?.mode??null}else if(r.length>=3){let G=l(0,h),L=l(1,h),Y=l(2,h);p=G?.hash??null,g=L?.hash??null,k=L?.mode??null,w=Y?.hash??null,b=Y?.mode??null}let x=o.get(h)?.hash??null,C=s.has(h)?1:0,P=i.has(h),R,y=async()=>R!==void 0?R:P?(R=!(await c()).has(h),R):(R=!1,!1),$,v=async()=>{if($!==void 0)return $;if(!P||!e.workTree)return $=null,null;let G=T(e.workTree,h);try{$=await yn(e.fs,G)}catch{$=null}return $};m.push({path:h,baseHash:p,headHash:g,remoteHash:w,indexHash:x,indexStage:C,existsOnDisk:P,isIgnoredOnDisk:y,getWorktreeHash:v,headMode:k,remoteMode:b})}return m}function ks(e,t){let n=e.remoteHash;return n===null?e.indexHash===null&&e.indexStage===0?{action:"SKIP",requirements:[]}:{action:"DELETE",requirements:t.reset?[]:["WORKTREE_MUST_BE_UPTODATE"]}:e.indexHash===n?{action:"KEEP",requirements:[]}:e.indexHash===null?{action:"TAKE",takeFrom:"remote",requirements:t.reset||!!t.strippedConflictPaths?.has(e.path)?[]:["NO_UNTRACKED"]}:{action:"TAKE",takeFrom:"remote",requirements:t.reset?[]:["WORKTREE_MUST_BE_UPTODATE"]}}function xs(e,t){let{headHash:n,remoteHash:r,indexHash:o}=e;return e.indexStage>0?n===r?r===null?{action:"DELETE",requirements:[]}:{action:"TAKE",takeFrom:"remote",requirements:[]}:{action:"KEEP",requirements:["INDEX_MUST_MATCH_HEAD"],caseNumber:-1}:o===null?r===null?n===null?{action:"SKIP",caseNumber:0,requirements:[]}:{action:"SKIP",caseNumber:2,requirements:["NO_UNTRACKED_REMOVED"]}:n!==null?n===r?{action:"SKIP",caseNumber:3,requirements:[]}:t.allowStagedChanges?{action:"TAKE",takeFrom:"remote",caseNumber:3,requirements:[]}:{action:"KEEP",caseNumber:3,requirements:["INDEX_MUST_MATCH_HEAD"]}:{action:"TAKE",takeFrom:"remote",caseNumber:1,requirements:["NO_UNTRACKED"]}:n===null&&r===null?{action:"KEEP",caseNumber:4,requirements:[]}:n===null&&r===o?{action:"KEEP",caseNumber:6,requirements:[]}:n===o&&r===null?{action:"DELETE",caseNumber:10,requirements:["WORKTREE_MUST_BE_UPTODATE"]}:n!==null&&n===r?{action:"KEEP",caseNumber:14,requirements:[]}:n!==null&&r!==null&&o===r?{action:"KEEP",caseNumber:18,requirements:[]}:n!==null&&r!==null&&o===n&&o!==r?{action:"TAKE",takeFrom:"remote",caseNumber:20,requirements:["WORKTREE_MUST_BE_UPTODATE"]}:t.allowStagedChanges?r===null?{action:"DELETE",caseNumber:-1,requirements:[]}:{action:"TAKE",takeFrom:"remote",caseNumber:-1,requirements:[]}:{action:"KEEP",requirements:["INDEX_MUST_MATCH_HEAD"],caseNumber:-1}}function ul(e,t){switch(e.action){case"TAKE":return e.takeFrom==="head"?t.headHash:e.takeFrom==="remote"?t.remoteHash:e.takeFrom==="base"?t.baseHash:null;case"DELETE":return null;case"KEEP":return t.indexHash;default:return null}}async function ml(e,t,n){let r=[];if(n.reset)return r;for(let[o,s]of e){if(s.requirements.length===0)continue;let i=t.get(o);if(!i)continue;let a=ul(s,i);for(let c of s.requirements){if(n.allowStagedChanges&&c==="INDEX_MUST_MATCH_HEAD")continue;let f=await hl(c,i,a);if(f){r.push({path:o,error:f});break}}if(n.stopAtFirstError&&r.length>0)break}return r}async function hl(e,t,n,r){switch(e){case"INDEX_MUST_NOT_EXIST":return t.indexHash!==null?"WOULD_OVERWRITE":Lo(t)?"WOULD_LOSE_UNTRACKED_REMOVED":null;case"INDEX_MUST_MATCH_HEAD":return t.indexHash!==t.headHash?"WOULD_OVERWRITE":null;case"INDEX_MUST_MATCH_RESULT":return t.indexHash!==null&&t.indexHash!==n?"WOULD_OVERWRITE":null;case"WORKTREE_MUST_BE_UPTODATE":{if(!t.existsOnDisk)return null;let o=await t.getWorktreeHash();return o!==t.indexHash?r?.allowContentEscapeHatch&&(n!==null&&o===n||o===null&&n===null)?null:"NOT_UPTODATE_FILE":null}case"NO_UNTRACKED":return Lo(t)?await t.isIgnoredOnDisk()?null:"WOULD_LOSE_UNTRACKED_OVERWRITTEN":null;case"NO_UNTRACKED_REMOVED":return Lo(t)?await t.isIgnoredOnDisk()?null:"WOULD_LOSE_UNTRACKED_REMOVED":null}}function pl(e,t,n,r){let o=[],s=[],i=new Set(e.keys()),a=new Map;for(let c of n.entries)i.has(c.path)||o.push(c),c.stage===0&&a.set(c.path,c);for(let[c,f]of e){let d=t.get(c);if(d)switch(f.action){case"KEEP":{let u=a.get(c);u&&(o.push(u),r.reset&&r.updateWorktree&&s.push({path:c,type:"checkout",hash:u.hash,mode:u.mode}));break}case"TAKE":{let u=f.takeFrom==="head"?d.headHash:d.remoteHash,l=f.takeFrom==="head"?d.headMode:d.remoteMode,m=l?Number.parseInt(l,8):33188;o.push({path:c,mode:m,hash:u,stage:0,stat:xe()}),r.updateWorktree&&s.push({path:c,type:"checkout",hash:u,mode:m});break}case"DELETE":{r.updateWorktree&&d.existsOnDisk&&s.push({path:c,type:"delete"});break}case"SKIP":break}}return o.sort((c,f)=>ke(c.path,f.path)||c.stage-f.stage),{newEntries:o,worktreeOps:s}}function Cs(e,t){let n=t.actionHint??t.operationName,r=[];for(let{error:s,msg:i,fix:a}of gl){let c=e.filter(f=>f.error===s).map(f=>f.path).sort();if(c.length>0){let f=c.map(d=>` ${d}`).join(`
|
|
31
|
+
`;if(await e.fs.exists(r)){let s=await e.fs.readFile(r);await e.fs.writeFile(r,s+o)}else await e.fs.writeFile(r,o)}async function Rr(e,t){let n=ps(e,t);await e.fs.exists(n)&&await e.fs.rm(n)}async function te(e,t,n,r,o,s,i=!1){let a=await _t(e,t),c={oldHash:r??J,newHash:o,...a,message:s};await Ue(e,n,c),i&&n!=="HEAD"&&await Ue(e,"HEAD",c)}var Le=ye(()=>{"use strict";at();ln();de();wn();at()});function Fd(e){let t=[],n=e.length;for(;n>0;){let s=e.slice(0,n).match(/^(.+?)~(\d*)$/);if(s&&s[1]!==void 0&&s[2]!==void 0){let a=s[2]===""?1:parseInt(s[2],10);t.unshift({type:"tilde",n:a}),n=s[1].length;continue}let i=e.slice(0,n).match(/^(.+?)\^(\d*)$/);if(i&&i[1]!==void 0&&i[2]!==void 0){let a=i[2]===""?1:parseInt(i[2],10);t.unshift({type:"caret",n:a}),n=i[1].length;continue}break}let r=e.slice(0,n),o=r.match(/^(.+?)@\{(\d+)\}$/);return o&&o[1]!==void 0&&o[2]!==void 0?{base:o[1],reflogIndex:parseInt(o[2],10),suffixes:t}:{base:r,suffixes:t}}async function Ud(e,t){let n=t.slice(0,2),r=t.slice(2),o=T(e.gitDir,"objects",n);if(!await e.fs.exists(o))return null;let i=(await e.fs.readdir(o)).filter(a=>a.startsWith(r));if(i.length===0)return null;if(i.length>1)throw new vo(t);return`${n}${i[0]}`}async function Bd(e,t){if(t==="HEAD"||t==="@")return _(e,"HEAD");if(ba.includes(t))return _(e,t);if(/^[0-9a-f]{40}$/.test(t))return await hn(e,t)?t:null;if(/^[0-9a-f]{4,39}$/.test(t)){let s=await Ud(e,t);if(s)return s}if(t.startsWith("refs/")){let s=await _(e,t);if(s)return s}let n=await _(e,`refs/heads/${t}`);if(n)return n;let r=await _(e,`refs/tags/${t}`);if(r)return r;let o=await _(e,`refs/remotes/${t}`);return o||null}function Wd(e){if(e==="HEAD"||e==="@")return"HEAD";for(let t of ba)if(e===t)return t;return e.startsWith("refs/")?e:`refs/heads/${e}`}async function qd(e,t,n){let r=Wd(t),o=await ze(e,r);if(o.length===0)return null;let s=o.length-1-n;if(s<0||s>=o.length)return null;let i=o[s];return i?i.newHash:null}async function Be(e,t){let{base:n,reflogIndex:r,suffixes:o}=Fd(t),s;if(r!==void 0?s=await qd(e,n,r):s=await Bd(e,n),!s)return null;o.length>0&&(s=await Ne(e,s));for(let i of o)if(i.type==="tilde")for(let a=0;a<i.n;a++){if(!s)return null;let c=await M(e,s);if(c.parents.length===0||(s=c.parents[0]??null,!s))return null}else{if(i.n===0)continue;if(!s)return null;let a=await M(e,s);if(i.n>a.parents.length||(s=a.parents[i.n-1]??null,!s))return null}return s}function ya(e){let t=e.indexOf(":");return t<0?null:{rev:e.slice(0,t)||"HEAD",path:e.slice(t+1)}}var ba,vo,en=ye(()=>{"use strict";se();de();Le();ue();ba=["HEAD","FETCH_HEAD","ORIG_HEAD","MERGE_HEAD","CHERRY_PICK_HEAD","REBASE_HEAD"];vo=class extends Error{constructor(n){super(`short object ID ${n} is ambiguous`);this.prefix=n}}});function ot(e,t){return e.lstat?e.lstat(t):e.stat(t)}function tn(e){return typeof e=="string"?e==="120000":e===40960}async function $r(e,t){if((await ot(e,t)).isSymbolicLink&&e.readlink){let r=await e.readlink(t);return Kd.encode(r)}return e.readFileBuffer(t)}async function yn(e,t){let n=await $r(e,t);return pt("blob",n)}var Kd,Ln=ye(()=>{"use strict";se();Kd=new TextEncoder});function En(e){let t=[],n=0;for(;n<e.byteLength;){let r=e.indexOf(32,n);if(r===-1)break;let o=Ea.decode(e.subarray(n,r)),s=e.indexOf(0,r+1);if(s===-1)break;let i=Ea.decode(e.subarray(r+1,s)),a=e.subarray(s+1,s+21),c=un(a),f=o.padStart(6,"0");t.push({mode:f,name:i,hash:c}),n=s+21}return{type:"tree",entries:t}}function ka(e){let t=[];for(let s of e.entries){let i=s.mode.replace(/^0+/,""),a=zd.encode(`${i} ${s.name}\0`),c=Ct(s.hash);t.push(a),t.push(c)}let n=t.reduce((s,i)=>s+i.byteLength,0),r=new Uint8Array(n),o=0;for(let s of t)r.set(s,o),o+=s.byteLength;return r}var zd,Ea,gs=ye(()=>{"use strict";at();zd=new TextEncoder,Ea=new TextDecoder});var Ir,xa=ye(()=>{"use strict";Ir={REGULAR:"100644",EXECUTABLE:"100755",SYMLINK:"120000",DIRECTORY:"040000",SUBMODULE:"160000"}});async function Ae(e,t){return Ca(e,t,"")}async function Ca(e,t,n){let r=[],o=new Map;for(let i of t){let a=n?i.path.slice(n.length+1):i.path,c=a.indexOf("/");if(c===-1)r.push({mode:Vd(i.mode),name:a,hash:i.hash});else{let f=a.slice(0,c),d=o.get(f);d||(d=[],o.set(f,d)),d.push(i)}}for(let[i,a]of o){let c=n?`${n}/${i}`:i,f=await Ca(e,a,c);r.push({mode:Ir.DIRECTORY,name:i,hash:f})}r.sort((i,a)=>{let c=i.mode===Ir.DIRECTORY?`${i.name}/`:i.name,f=a.mode===Ir.DIRECTORY?`${a.name}/`:a.name;return c<f?-1:c>f?1:0});let s=ka({type:"tree",entries:r});return Re(e,"tree",s)}async function We(e,t,n=""){let r=await pe(e,t);if(r.type!=="tree")throw new Error(`Expected tree object, got ${r.type}`);let o=En(r.content),s=[];for(let i of o.entries){let a=n?`${n}/${i.name}`:i.name;if(i.mode===Ir.DIRECTORY){let c=await We(e,i.hash,a);s.push(...c)}else s.push({path:a,mode:i.mode,hash:i.hash})}return s}async function fe(e,t){if(!t)return new Map;let n=await We(e,t);return new Map(n.map(r=>[r.path,r]))}async function _e(e,t,n){let r=await fe(e,t),o=await fe(e,n),s=[];for(let[i,a]of r){let c=o.get(i);c?(a.hash!==c.hash||a.mode!==c.mode)&&s.push({path:i,status:"modified",oldHash:a.hash,newHash:c.hash,oldMode:a.mode,newMode:c.mode}):s.push({path:i,status:"deleted",oldHash:a.hash,oldMode:a.mode})}for(let[i,a]of o)r.has(i)||s.push({path:i,status:"added",newHash:a.hash,newMode:a.mode});return s.sort((i,a)=>ke(i.path,a.path))}function Vd(e){return e.toString(8).padStart(6,"0")}var Ie=ye(()=>{"use strict";ne();se();gs();xa()});function Pa(e){return/^[a-zA-Z0-9]$/.test(e)}function Yd(e){return/^[a-zA-Z]$/.test(e)}function Xd(e){return e>="0"&&e<="9"}function Ao(e){return e>="A"&&e<="Z"}function So(e){return e>="a"&&e<="z"}function Ra(e){return/^\s$/.test(e)}function Zd(e){return e===" "||e===" "}function Mo(e){let t=e.charCodeAt(0);return t>=32&&t<=126}function Jd(e){return Mo(e)&&!Ra(e)}function Qd(e){return Mo(e)&&!Pa(e)&&e!==" "}function el(e){let t=e.charCodeAt(0);return t<32||t===127}function tl(e){return/^[0-9a-fA-F]$/.test(e)}function Or(e,t,n){return n?e.toLowerCase()===t.toLowerCase():e===t}function Do(e,t,n,r,o){let s=(o&1)!==0,i=(o&2)!==0;for(;t<e.length;){let a=e[t];if(r>=n.length&&a!=="*")return-1;let c=r<n.length?n[r]:"";switch(a){case"\\":{if(t++,t>=e.length)return-1;if(!Or(n[r],e[t],s))return 1;r++,t++;break}case"?":{if(i&&c==="/")return 1;r++,t++;break}case"*":{let f;if(t++,t<e.length&&e[t]==="*"){let d=t;for(;t<e.length&&e[t]==="*";)t++;if(!i)f=!0;else if((d-1<1||e[d-2]==="/")&&(t>=e.length||e[t]==="/"||e[t]==="\\"&&t+1<e.length&&e[t+1]==="/")){if(t<e.length&&e[t]==="/"&&Do(e,t+1,n,r,o)===0)return 0;f=!0}else f=!1}else f=!i;if(t>=e.length)return!f&&n.indexOf("/",r)!==-1?-2:0;if(!f&&e[t]==="/"){let d=n.indexOf("/",r);if(d===-1)return-1;r=d+1,t++;break}for(;!(r>=n.length);){if(!nl(e[t])){let u=s?e[t].toLowerCase():e[t];for(;r<n.length&&(f||n[r]!=="/")&&(s?n[r].toLowerCase():n[r])!==u;)r++;if(r>=n.length||!f&&n[r]==="/")return r<n.length&&!f&&n[r]==="/"?-2:f?-1:-2}let d=Do(e,t,n,r,o);if(d!==1){if(!f||d!==-2)return d}else if(!f&&n[r]==="/")return-2;r++}return-1}case"[":{if(i&&c==="/")return 1;if(t++,t>=e.length)return-1;let f=!1;(e[t]==="!"||e[t]==="^")&&(f=!0,t++);let d=!1,u="",l=!0;for(;t<e.length&&(l||e[t]!=="]");){l=!1;let m=e[t];if(m==="\\"){if(t++,t>=e.length)return-1;m=e[t],Or(c,m,s)&&(d=!0)}else if(m==="-"&&u&&t+1<e.length&&e[t+1]!=="]"){if(t++,m=e[t],m==="\\"){if(t++,t>=e.length)return-1;m=e[t]}let h=u,p=m;if(c>=h&&c<=p&&(d=!0),s){if(So(c)){let g=c.toUpperCase();g>=h&&g<=p&&(d=!0)}else if(Ao(c)){let g=c.toLowerCase();g>=h&&g<=p&&(d=!0)}}m=""}else if(m==="["&&t+1<e.length&&e[t+1]===":"){t+=2;let h=t;for(;t<e.length&&e[t]!=="]";)t++;if(t>=e.length)return-1;let p=t-h-1;if(p<0||e[t-1]!==":")t=h-2,m="[",Or(c,m,s)&&(d=!0);else{let g=e.slice(h,h+p);rl(g,c,s)&&(d=!0),m=""}}else Or(c,m,s)&&(d=!0);u=m,t++}if(t>=e.length)return-1;if(t++,d===f)return 1;r++;break}default:{if(!Or(c,a,s))return 1;r++,t++;break}}}return r>=n.length?0:1}function nl(e){return e==="*"||e==="?"||e==="["||e==="\\"}function rl(e,t,n){switch(e){case"alnum":return Pa(t);case"alpha":return Yd(t);case"blank":return Zd(t);case"cntrl":return el(t);case"digit":return Xd(t);case"graph":return Jd(t);case"lower":return So(t)||n&&Ao(t);case"print":return Mo(t);case"punct":return Qd(t);case"space":return Ra(t);case"upper":return Ao(t)||n&&So(t);case"xdigit":return tl(t);default:return!1}}function Gn(e,t,n=0){return Do(e,0,t,0,n)===0?0:1}var ws=ye(()=>{"use strict"});function Ta(e){for(let t=0;t<e.length;t++){let n=e[t];if(n==="\\"){t++;continue}if(n==="*"||n==="?"||n==="[")return t}return e.length}function sl(e){return Ta(e)===e.length}function ol(e,t){let n=e;for(;n.length>0;){let c=n[n.length-1];if(c===" "||c===" "){if(n.length>=2&&n[n.length-2]==="\\"){n=n.slice(0,n.length-2)+n[n.length-1];break}n=n.slice(0,-1)}else break}if(n.length===0||n[0]==="#")return null;let r=0,o=n;if(o[0]==="!"&&(r|=bs,o=o.slice(1)),o.length===0)return null;let s=o.length;o[s-1]==="/"&&(s--,o=o.slice(0,s),r|=Oa);let i=!1;for(let c=0;c<s;c++)if(o[c]==="/"){i=!0;break}i||(r|=$a);let a=Math.min(Ta(o),s);return o[0]==="*"&&sl(o.slice(1))&&(r|=Ia),{pattern:o,patternLen:s,nowildcardLen:a,flags:r,base:t}}function Tr(e,t,n){let r=[];for(let o of e.split(`
|
|
32
|
+
`)){let s=ol(o,t);s&&r.push(s)}return{patterns:r,src:n}}function il(e,t){let{pattern:n,patternLen:r,nowildcardLen:o,flags:s}=t;if(o===r)return e===n;if(s&Ia){let i=n.slice(1);return e.length>=i.length&&e.endsWith(i)}return Gn(n,e,2)===0}function al(e,t){let{base:n}=t,{pattern:r,patternLen:o,nowildcardLen:s}=t;r[0]==="/"&&(r=r.slice(1),o--,s=Math.max(0,s-1));let i=n.length;if(i>0&&(e.length<i+1||e[i]!=="/"||!e.startsWith(n)))return!1;let a=i>0?e.slice(i+1):e,c=a.length;if(s>0){if(s>c||a.slice(0,s)!==r.slice(0,s))return!1;if(o===s&&c===s)return!0}return Gn(r,a,2)===0}function jo(e,t,n){let r=e.lastIndexOf("/")>=0?e.slice(e.lastIndexOf("/")+1):e;for(let o=n.patterns.length-1;o>=0;o--){let s=n.patterns[o];if(s&&!(s.flags&Oa&&!t)){if(s.flags&$a){if(s.base&&!e.startsWith(`${s.base}/`))continue;if(il(r,s))return s;continue}if(al(e,s))return s}}return null}function Wt(e,t,n){for(let r=e.dirPatterns.length-1;r>=0;r--){let o=e.dirPatterns[r],s=jo(t,n,o);if(s)return s.flags&bs?"not-ignored":"ignored"}if(e.excludeFile){let r=jo(t,n,e.excludeFile);if(r)return r.flags&bs?"not-ignored":"ignored"}if(e.globalExclude){let r=jo(t,n,e.globalExclude);if(r)return r.flags&bs?"not-ignored":"ignored"}return"undecided"}async function tr(e){let t={dirPatterns:[],excludeFile:null,globalExclude:null},n=T(e.gitDir,"info","exclude");try{let r=await e.fs.readFile(n);t.excludeFile=Tr(r,"",n)}catch{}try{let r=await Dt(e,"core.excludesFile");if(r)try{let o=await e.fs.readFile(r);t.globalExclude=Tr(o,"",r)}catch{}}catch{}return t}function Nn(e,t,n,r){let s=Tr(t,n===""?"":n,r);return{...e,dirPatterns:[...e.dirPatterns,s]}}var $a,Ia,Oa,bs,Es=ye(()=>{"use strict";Xe();de();ws();$a=1,Ia=4,Oa=8,bs=16});async function Rt(e,t){if(!e.workTree)throw new Error("Cannot diff working tree in a bare repository");let n=[];for(let s of t.entries){if(s.stage!==0)continue;let i=T(e.workTree,s.path),a;try{a=await ot(e.fs,i)}catch{a=null}if(!a){n.push({path:s.path,status:"deleted",indexHash:s.hash});continue}if(!a.isFile&&!a.isSymbolicLink){n.push({path:s.path,status:"deleted",indexHash:s.hash});continue}await yn(e.fs,i)!==s.hash&&n.push({path:s.path,status:"modified",indexHash:s.hash})}let r=new Set(t.entries.map(s=>s.path)),o=await Ze(e,e.workTree,"");for(let s of o)r.has(s)||n.push({path:s,status:"untracked"});return n.sort((s,i)=>ke(s.path,i.path))}async function rt(e,t){if(!e.workTree)throw new Error("Cannot checkout in a bare repository");let n=await pe(e,t.hash);if(n.type!=="blob")throw new Error(`Expected blob for ${t.path}, got ${n.type}`);let r=T(e.workTree,t.path),o=r.lastIndexOf("/");if(o>0&&await e.fs.mkdir(r.slice(0,o),{recursive:!0}),t.mode!=null&&tn(t.mode)&&e.fs.symlink){await ot(e.fs,r).then(()=>!0).catch(()=>!1)&&await e.fs.rm(r,{force:!0});let i=fl.decode(n.content);await e.fs.symlink(i,r)}else{if(e.fs.lstat)try{(await e.fs.lstat(r)).isSymbolicLink&&await e.fs.rm(r,{force:!0})}catch{}await e.fs.writeFile(r,n.content)}}async function Ha(e,t){let n=await We(e,t);for(let r of n)await rt(e,r)}async function nn(e,t,n){if(!e.workTree)throw new Error("Cannot stage in a bare repository");let r=T(e.workTree,n);if(!await e.fs.exists(r))throw new Error(`Path does not exist: ${n}`);let o=await ot(e.fs,r);if(o.isSymbolicLink&&e.fs.readlink){let f=await e.fs.readlink(r),d=cl.encode(f),u=await Re(e,"blob",d),l={path:n,mode:40960,hash:u,stage:0,stat:{...xe(),size:d.byteLength}};return{index:ht(t,l),hash:u}}let s=await e.fs.readFileBuffer(r),i=await Re(e,"blob",s),a=o.mode!=null?dl(o.mode):33188,c={path:n,mode:a,hash:i,stage:0,stat:{...xe(),size:s.byteLength}};return{index:ht(t,c),hash:i}}async function Ze(e,t,n,r){let o=r?.skipIgnore??!1,s=null;if(!o){s=r?._ignore??await tr(e);let c=T(t,".gitignore");try{let f=await e.fs.readFile(c);s=Nn(s,f,n,c)}catch{}}let i=[],a=await e.fs.readdir(t);for(let c of a){if(n===""&&c===".git")continue;let f=T(t,c),d=n?`${n}/${c}`:c,u=await ot(e.fs,f);if(u.isSymbolicLink){if(s&&Wt(s,d,!1)==="ignored")continue;i.push(d)}else if(u.isDirectory){if(s&&Wt(s,d,!0)==="ignored")continue;let l=await Ze(e,f,d,{skipIgnore:o,_ignore:s??void 0});i.push(...l)}else if(u.isFile){if(s&&Wt(s,d,!1)==="ignored")continue;i.push(d)}}return i}function dl(e){return e>511?e:e&73?33261:33188}async function _n(e,t,n){if(t===n||t==="/"||!t.startsWith(n)||!await e.exists(t)||!(await e.stat(t)).isDirectory)return;(await e.readdir(t)).length===0&&(await e.rm(t),await _n(e,Nt(t),n))}var cl,fl,Je=ye(()=>{"use strict";ne();Es();Ee();se();de();Ln();Ie();cl=new TextEncoder,fl=new TextDecoder});function Lo(e){return e.existsOnDisk&&e.indexHash===null}async function ll(e,t,n){let r=await Promise.all(t.map(h=>fe(e,h.treeHash))),o=new Map,s=new Set;for(let h of n.entries)h.stage===0?o.set(h.path,h):s.add(h.path);let i=e.workTree?new Set(await Ze(e,e.workTree,"",{skipIgnore:!0})):new Set,a=null,c=async()=>(a===null&&(a=e.workTree?new Set(await Ze(e,e.workTree,"")):new Set),a),f=new Set;for(let h of r)for(let p of h.keys())f.add(p);let d=new Set;for(let h of n.entries)f.has(h.path)||d.add(h.path);for(let h of i)f.has(h)||d.add(h);let u=Array.from(f).sort().concat(Array.from(d).sort()),l=(h,p)=>r[h]?.get(p),m=[];for(let h of u){let p=null,g=null,w=null,k=null,b=null;if(r.length===1){let G=l(0,h);w=G?.hash??null,b=G?.mode??null}else if(r.length===2){let G=l(0,h),L=l(1,h);g=G?.hash??null,k=G?.mode??null,w=L?.hash??null,b=L?.mode??null}else if(r.length>=3){let G=l(0,h),L=l(1,h),Y=l(2,h);p=G?.hash??null,g=L?.hash??null,k=L?.mode??null,w=Y?.hash??null,b=Y?.mode??null}let x=o.get(h)?.hash??null,C=s.has(h)?1:0,P=i.has(h),R,y=async()=>R!==void 0?R:P?(R=!(await c()).has(h),R):(R=!1,!1),$,v=async()=>{if($!==void 0)return $;if(!P||!e.workTree)return $=null,null;let G=T(e.workTree,h);try{$=await yn(e.fs,G)}catch{$=null}return $};m.push({path:h,baseHash:p,headHash:g,remoteHash:w,indexHash:x,indexStage:C,existsOnDisk:P,isIgnoredOnDisk:y,getWorktreeHash:v,headMode:k,remoteMode:b})}return m}function ks(e,t){let n=e.remoteHash;return n===null?e.indexHash===null&&e.indexStage===0?{action:"SKIP",requirements:[]}:{action:"DELETE",requirements:t.reset?[]:["WORKTREE_MUST_BE_UPTODATE"]}:e.indexHash===n?{action:"KEEP",requirements:[]}:e.indexHash===null?{action:"TAKE",takeFrom:"remote",requirements:t.reset||!!t.strippedConflictPaths?.has(e.path)?[]:["NO_UNTRACKED"]}:{action:"TAKE",takeFrom:"remote",requirements:t.reset?[]:["WORKTREE_MUST_BE_UPTODATE"]}}function xs(e,t){let{headHash:n,remoteHash:r,indexHash:o}=e;return e.indexStage>0?n===r?r===null?{action:"DELETE",requirements:[]}:{action:"TAKE",takeFrom:"remote",requirements:[]}:{action:"KEEP",requirements:["INDEX_MUST_MATCH_HEAD"],caseNumber:-1}:o===null?r===null?n===null?{action:"SKIP",caseNumber:0,requirements:[]}:{action:"SKIP",caseNumber:2,requirements:["NO_UNTRACKED_REMOVED"]}:n!==null?n===r?{action:"SKIP",caseNumber:3,requirements:[]}:t.allowStagedChanges?{action:"TAKE",takeFrom:"remote",caseNumber:3,requirements:[]}:{action:"KEEP",caseNumber:3,requirements:["INDEX_MUST_MATCH_HEAD"]}:{action:"TAKE",takeFrom:"remote",caseNumber:1,requirements:["NO_UNTRACKED"]}:n===null&&r===null?{action:"KEEP",caseNumber:4,requirements:[]}:n===null&&r===o?{action:"KEEP",caseNumber:6,requirements:[]}:n===o&&r===null?{action:"DELETE",caseNumber:10,requirements:["WORKTREE_MUST_BE_UPTODATE"]}:n!==null&&n===r?{action:"KEEP",caseNumber:14,requirements:[]}:n!==null&&r!==null&&o===r?{action:"KEEP",caseNumber:18,requirements:[]}:n!==null&&r!==null&&o===n&&o!==r?{action:"TAKE",takeFrom:"remote",caseNumber:20,requirements:["WORKTREE_MUST_BE_UPTODATE"]}:t.allowStagedChanges?r===null?{action:"DELETE",caseNumber:-1,requirements:[]}:{action:"TAKE",takeFrom:"remote",caseNumber:-1,requirements:[]}:{action:"KEEP",requirements:["INDEX_MUST_MATCH_HEAD"],caseNumber:-1}}function ul(e,t){switch(e.action){case"TAKE":return e.takeFrom==="head"?t.headHash:e.takeFrom==="remote"?t.remoteHash:e.takeFrom==="base"?t.baseHash:null;case"DELETE":return null;case"KEEP":return t.indexHash;default:return null}}async function ml(e,t,n){let r=[];if(n.reset)return r;for(let[o,s]of e){if(s.requirements.length===0)continue;let i=t.get(o);if(!i)continue;let a=ul(s,i);for(let c of s.requirements){if(n.allowStagedChanges&&c==="INDEX_MUST_MATCH_HEAD")continue;let f=await hl(c,i,a);if(f){r.push({path:o,error:f});break}}if(n.stopAtFirstError&&r.length>0)break}return r}async function hl(e,t,n,r){switch(e){case"INDEX_MUST_NOT_EXIST":return t.indexHash!==null?"WOULD_OVERWRITE":Lo(t)?"WOULD_LOSE_UNTRACKED_REMOVED":null;case"INDEX_MUST_MATCH_HEAD":return t.indexHash!==t.headHash?"WOULD_OVERWRITE":null;case"INDEX_MUST_MATCH_RESULT":return t.indexHash!==null&&t.indexHash!==n?"WOULD_OVERWRITE":null;case"WORKTREE_MUST_BE_UPTODATE":{if(!t.existsOnDisk)return null;let o=await t.getWorktreeHash();return o!==t.indexHash?r?.allowContentEscapeHatch&&(n!==null&&o===n||o===null&&n===null)?null:"NOT_UPTODATE_FILE":null}case"NO_UNTRACKED":return Lo(t)?await t.isIgnoredOnDisk()?null:"WOULD_LOSE_UNTRACKED_OVERWRITTEN":null;case"NO_UNTRACKED_REMOVED":return Lo(t)?await t.isIgnoredOnDisk()?null:"WOULD_LOSE_UNTRACKED_REMOVED":null}}function pl(e,t,n,r){let o=[],s=[],i=new Set(e.keys()),a=new Map;for(let c of n.entries)i.has(c.path)||o.push(c),c.stage===0&&a.set(c.path,c);for(let[c,f]of e){let d=t.get(c);if(d)switch(f.action){case"KEEP":{let u=a.get(c);u&&(o.push(u),r.reset&&r.updateWorktree&&s.push({path:c,type:"checkout",hash:u.hash,mode:u.mode}));break}case"TAKE":{let u=f.takeFrom==="head"?d.headHash:d.remoteHash,l=f.takeFrom==="head"?d.headMode:d.remoteMode,m=l?Number.parseInt(l,8):33188;o.push({path:c,mode:m,hash:u,stage:0,stat:xe()}),r.updateWorktree&&s.push({path:c,type:"checkout",hash:u,mode:m});break}case"DELETE":{r.updateWorktree&&d.existsOnDisk&&s.push({path:c,type:"delete"});break}case"SKIP":break}}return o.sort((c,f)=>ke(c.path,f.path)||c.stage-f.stage),{newEntries:o,worktreeOps:s}}function Cs(e,t){let n=t.actionHint??t.operationName,r=[];for(let{error:s,msg:i,fix:a}of gl){let c=e.filter(f=>f.error===s).map(f=>f.path).sort();if(c.length>0){let f=c.map(d=>` ${d}`).join(`
|
|
33
33
|
`);r.push(`${i(t.operationName)}
|
|
34
34
|
${f}
|
|
35
35
|
${a(n)}
|
|
@@ -37,7 +37,7 @@ ${a(n)}
|
|
|
37
37
|
`:"",exitCode:t.errorExitCode}}async function Fn(e,t,n,r){let o=await ll(e,t,n),s=new Map(o.map(d=>[d.path,d])),i=new Map;for(let d of o){let u=r.mergeFn(d,r);i.set(d.path,u)}let a=await ml(i,s,r);if(a.length>0)return{success:!1,newEntries:[],worktreeOps:[],errors:a,errorOutput:Cs(a,r)};let{newEntries:c,worktreeOps:f}=pl(i,s,n,r);return{success:!0,newEntries:c,worktreeOps:f,errors:[],errorOutput:null}}async function Oe(e,t){if(!e.workTree)return;let n=e.workTree,r=[];for(let o of t){let s=T(n,o.path);o.type==="delete"?await ot(e.fs,s).then(()=>!0).catch(()=>!1)&&(await e.fs.rm(s),r.push(s)):o.type==="checkout"&&o.hash&&await rt(e,{path:o.path,hash:o.hash,mode:o.mode})}for(let o of r)await _n(e.fs,Nt(o),n)}async function kn(e,t,n,r){return Fn(e,[{label:"current",treeHash:t},{label:"target",treeHash:n}],r,{mergeFn:xs,updateWorktree:!0,reset:!1,errorExitCode:1,operationName:"checkout",actionHint:"switch branches"})}async function va(e,t,n,r){return Fn(e,[{label:"HEAD",treeHash:t},{label:"target",treeHash:n}],r,{mergeFn:xs,updateWorktree:!0,reset:!1,errorExitCode:1,operationName:"merge"})}async function rn(e,t,n){return Fn(e,[{label:"target",treeHash:t}],n,{mergeFn:ks,updateWorktree:!0,reset:!0,errorExitCode:128,operationName:"reset"})}async function Ps(e,t,n,r){let o=new Set;for(let a of n.entries)a.stage>0&&o.add(a.path);let s={version:n.version,entries:ve(n)},i=await Fn(e,[{label:"ORIG_HEAD",treeHash:t}],s,{mergeFn:ks,updateWorktree:!0,reset:!1,errorExitCode:128,operationName:"merge",stopAtFirstError:!0,strippedConflictPaths:o});if(!i.success){let a=r??"HEAD",c=[];for(let f of i.errors)f.error==="NOT_UPTODATE_FILE"?c.push(`error: Entry '${f.path}' not uptodate. Cannot merge.
|
|
38
38
|
`):f.error==="WOULD_LOSE_UNTRACKED_OVERWRITTEN"&&c.push(`error: Untracked working tree file '${f.path}' would be overwritten by merge.
|
|
39
39
|
`);return c.length>0&&(i.errorOutput=N(c.join("")+`fatal: Could not reset index file to revision '${a}'.
|
|
40
|
-
`,128)),i}if(e.workTree&&o.size>0){let a=await fe(e,t),c=new Set(i.newEntries.map(f=>f.path));for(let f of o)!a.has(f)&&!c.has(f)&&i.worktreeOps.push({path:f,type:"delete"})}return i}var gl,qt=ye(()=>{"use strict";
|
|
40
|
+
`,128)),i}if(e.workTree&&o.size>0){let a=await fe(e,t),c=new Set(i.newEntries.map(f=>f.path));for(let f of o)!a.has(f)&&!c.has(f)&&i.worktreeOps.push({path:f,type:"delete"})}return i}var gl,qt=ye(()=>{"use strict";ne();Ee();de();Ln();Ie();Je();gl=[{error:"WOULD_OVERWRITE",msg:e=>`error: Your local changes to the following files would be overwritten by ${e}:`,fix:e=>`Please commit your changes or stash them before you ${e}.`},{error:"NOT_UPTODATE_FILE",msg:e=>`error: Your local changes to the following files would be overwritten by ${e}:`,fix:e=>`Please commit your changes or stash them before you ${e}.`},{error:"WOULD_LOSE_UNTRACKED_OVERWRITTEN",msg:e=>`error: The following untracked working tree files would be overwritten by ${e}:`,fix:e=>`Please move or remove them before you ${e}.`},{error:"WOULD_LOSE_UNTRACKED_REMOVED",msg:e=>`error: The following untracked working tree files would be removed by ${e}:`,fix:e=>`Please move or remove them before you ${e}.`}]});function O(e){return{stdout:"",stderr:`fatal: ${e}
|
|
41
41
|
`,exitCode:128}}function N(e,t=1){return{stdout:"",stderr:e,exitCode:t}}async function U(e,t,n){let r=await jn(e,t);return r?n?{...r,...n}:r:wl}function S(e){return typeof e=="object"&&e!==null&&"exitCode"in e}function qe(e){return e.workTree?null:bl}async function Ke(e){let t=await X(e);return t||O("your current branch does not have any commits yet")}function sn(e,t,n=`fatal: Exiting because of an unresolved conflict.
|
|
42
42
|
`){return Pt(e)?N(`error: ${t} is not possible because you have unmerged files.
|
|
43
43
|
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
|
|
@@ -45,14 +45,14 @@ hint: as appropriate to mark resolution and make a commit.
|
|
|
45
45
|
`+n,128):null}async function $t(e,t,n){let r=await Be(e,t);return r||O(n??`bad revision '${t}'`)}async function Te(e,t,n){let r=await Be(e,t);if(!r)return O(n??`bad revision '${t}'`);try{let o=await Ne(e,r),s=await M(e,o);return{hash:o,commit:s}}catch{return O(n??`bad revision '${t}'`)}}async function Ve(e,t){try{return await wr(e,t)}catch(n){return O(n.message)}}async function Kt(e,t){try{return await ns(e,t)}catch(n){return O(n.message)}}function nr(e,t){let n=new Map;for(let r of e.entries)r.stage===0&&n.set(r.path,r);for(let[r,o]of n){let s=t.get(r);if(!s||s.hash!==o.hash)return!0}for(let[r]of t)if(!n.has(r))return!0;return!1}function ke(e,t){return e<t?-1:e>t?1:0}function ct(e,t){return e.workTree?st(e.workTree,t):""}function z(e){return e.slice(0,7)}function oe(e){let t=e.indexOf(`
|
|
46
46
|
`);return t===-1?e:e.slice(0,t)}function Mt(e){return O(`ambiguous argument '${e}': unknown revision or path not in the working tree.
|
|
47
47
|
Use '--' to separate paths from revisions, like this:
|
|
48
|
-
'git <command> [<revision>...] -- [<file>...]'`)}function It(e,t,n,r=!1){return`[${e}${r?" (root-commit)":""} ${z(t)}] ${oe(n)}`}async function xn(e,t,n){if(!await _(e,n.operationRef))return n.noOpError;let o=await _(e,"ORIG_HEAD")??await X(e);if(!o)return O(`There is no ${n.operationName} to abort (ORIG_HEAD missing).`);let s=await X(e),i=await M(e,o),a=await q(e),c=await Ps(e,i.tree,a,n.origHeadAsTargetRev?o:void 0);if(!c.success)return c.errorOutput;if(await gn(e,o),await ce(e,{version:2,entries:c.newEntries}),await Oe(e,c.worktreeOps),s&&((await Z(e))?.type==="symbolic"||s!==o)){let u=n.origHeadAsTargetRev?o:"HEAD";await
|
|
48
|
+
'git <command> [<revision>...] -- [<file>...]'`)}function It(e,t,n,r=!1){return`[${e}${r?" (root-commit)":""} ${z(t)}] ${oe(n)}`}async function xn(e,t,n){if(!await _(e,n.operationRef))return n.noOpError;let o=await _(e,"ORIG_HEAD")??await X(e);if(!o)return O(`There is no ${n.operationName} to abort (ORIG_HEAD missing).`);let s=await X(e),i=await M(e,o),a=await q(e),c=await Ps(e,i.tree,a,n.origHeadAsTargetRev?o:void 0);if(!c.success)return c.errorOutput;if(await gn(e,o),await ce(e,{version:2,entries:c.newEntries}),await Oe(e,c.worktreeOps),s&&((await Z(e))?.type==="symbolic"||s!==o)){let u=n.origHeadAsTargetRev?o:"HEAD";await te(e,t,"HEAD",s,o,`reset: moving to ${u}`)}return await n.clearState(e),{stdout:"",stderr:"",exitCode:0}}async function ft(e,t,n,r,o,s){let i=Bt({type:"commit",tree:t,parents:n,author:r,committer:o,message:s}),a=await Re(e,"commit",i);return await gn(e,a),a}function Hr(e){return e.split(`
|
|
49
49
|
`).filter(t=>!t.startsWith("#")).join(`
|
|
50
50
|
`).replace(/\n+$/,`
|
|
51
51
|
`)}function Ot(e){return e.endsWith(`
|
|
52
52
|
`)?e:`${e}
|
|
53
|
-
`}var wl,bl,
|
|
53
|
+
`}var wl,bl,ne=ye(()=>{"use strict";ln();Ee();se();Jt();de();Le();ue();wn();en();qt();wl=O("not a git repository (or any of the parent directories): .git"),bl=O("this operation must be run in a work tree")});var ja={};id(ja,{CommitHeap:()=>Bn,countAheadBehind:()=>_o,findOrphanedCommits:()=>Fo,walkCommits:()=>zt});async function*zt(e,t,n){let r=await Pl(e,n?.exclude),o=new Set(r),s=new Bn,i=Array.isArray(t)?t:[t];for(let a of i)o.has(a)||s.push(await Os(e,a));for(;s.size>0;){let a=s.pop();if(!o.has(a.hash)){o.add(a.hash),yield a;for(let c of a.commit.parents)o.has(c)||s.push(await Os(e,c))}}}async function _o(e,t,n){if(t===n)return{ahead:0,behind:0};let r=new Set;for await(let a of zt(e,t))r.add(a.hash);let o=new Set;for await(let a of zt(e,n))o.add(a.hash);let s=0;for(let a of r)o.has(a)||s++;let i=0;for(let a of o)r.has(a)||i++;return{ahead:s,behind:i}}async function Fo(e,t,n){let r=n?.maxCount??25,o=await ge(e,"refs"),s=[];for(let d of o)try{s.push(await Ne(e,d.hash))}catch{}n?.targetHash&&s.push(n.targetHash);let i=new Set;if(s.length>0)for await(let d of zt(e,s))i.add(d.hash);if(i.has(t))return[];let a=[],c=new Set,f=new Bn;for(f.push(await Os(e,t));f.size>0&&a.length<r;){let d=f.pop();if(!c.has(d.hash)&&(c.add(d.hash),!i.has(d.hash))){a.push({hash:d.hash,subject:oe(d.commit.message)});for(let u of d.commit.parents)c.has(u)||f.push(await Os(e,u))}}return a}async function Pl(e,t){if(!t||t.length===0)return new Set;let n=new Set;for await(let r of zt(e,t))n.add(r.hash);return n}async function Os(e,t){return{hash:t,commit:await M(e,t)}}var Bn,rr=ye(()=>{"use strict";ne();se();ue();Bn=class{heap=[];nextEpoch=0;get size(){return this.heap.length}push(t){this.heap.push({entry:t,epoch:this.nextEpoch++}),this.siftUp(this.heap.length-1)}pop(){let{heap:t}=this;if(t.length===0)return;let n=t[0],r=t.pop();return t.length>0&&(t[0]=r,this.siftDown(0)),n.entry}higher(t,n){let r=t.entry.commit.committer.timestamp,o=n.entry.commit.committer.timestamp;return r>o||r===o&&t.epoch<n.epoch}siftUp(t){let{heap:n}=this;for(;t>0;){let r=t-1>>1;if(!this.higher(n[t],n[r]))break;[n[r],n[t]]=[n[t],n[r]],t=r}}siftDown(t){let{heap:n}=this,r=n.length;for(;;){let o=t,s=2*t+1,i=2*t+2;if(s<r&&this.higher(n[s],n[o])&&(o=s),i<r&&this.higher(n[i],n[o])&&(o=i),o===t)break;[n[t],n[o]]=[n[o],n[t]],t=o}}}});var uo=class e{_def;constructor(t){this._def=t}name(t){return new e({...this._def,name:t})}describe(t){return new e({...this._def,description:t})}optional(){return new e({...this._def,required:!1})}variadic(){return new e({...this._def,variadic:!0})}default(t){return new e({...this._def,required:!1,default:t})}};function Ti(e){return new uo({_kind:"arg",type:e,required:!0})}function Hi(){return Ti("string")}function vi(){return Ti("number")}var Jr=class e{_def;constructor(t={_kind:"flag"}){this._def=t}describe(t){return new e({...this._def,description:t})}alias(t){return new e({...this._def,short:t})}default(t){return new e({...this._def,default:t})}count(){return new e({...this._def,counted:!0})}};var mo=class e{_def;constructor(t){this._def=t}describe(t){return new e({...this._def,description:t})}alias(t){return new e({...this._def,short:t})}env(t){return new e({...this._def,env:t})}required(){return new e({...this._def,required:!0})}default(t){return new e({...this._def,default:t})}};function Ai(e){return new mo({_kind:"option",type:e})}function Si(){return Ai("string")}function Di(){return Ai("number")}var Q={string:Si,number:Di};function H(){return new Jr}var B={string:Hi,number:vi};function ad(e){switch(e.type){case"unknown_option":{let t=`Unknown option "${e.name}".`;return e.suggestions.length>0&&(t+=` Did you mean ${e.suggestions.map(n=>`"${n}"`).join(" or ")}?`),t}case"invalid_type":return`Invalid value for "${e.name}": expected ${e.expected}, got "${e.received}".`;case"missing_required":return e.kind==="option"?`Missing required option "--${e.name}".`:`Missing required argument <${e.name}>.`;case"unexpected_positional":return e.maxPositionals===0?`Unexpected argument "${e.value}". This command takes no positional arguments.`:`Unexpected argument "${e.value}". Expected at most ${e.maxPositionals} positional argument${e.maxPositionals===1?"":"s"}.`;case"missing_value":return`Option "--${e.name}" requires a value.`;case"unknown_command":{let t=`Unknown command "${e.path}".`;return e.suggestions.length>0&&(t+=` Did you mean ${e.suggestions.map(n=>`"${n}"`).join(" or ")}?`),t}}}function ho(e){return e.map(ad).join(`
|
|
54
54
|
`)}function cd(e,t){let n=e.length,r=t.length,o=new Array((n+1)*(r+1));for(let s=0;s<=n;s++)o[s*(r+1)]=s;for(let s=0;s<=r;s++)o[s]=s;for(let s=1;s<=n;s++)for(let i=1;i<=r;i++){let a=e[s-1]===t[i-1]?0:1;o[s*(r+1)+i]=Math.min(o[(s-1)*(r+1)+i]+1,o[s*(r+1)+(i-1)]+1,o[(s-1)*(r+1)+(i-1)]+a)}return o[n*(r+1)+r]}function Qr(e,t,n=3){return t.map(o=>({candidate:o,distance:cd(e,o)})).filter(o=>o.distance<=n&&o.distance>0).sort((o,s)=>o.distance-s.distance).slice(0,2).map(o=>o.candidate)}function Mi(e,t,n,r){let o=[],s=new Map,i=new Map;for(let[l,m]of Object.entries(e)){let h=pr(l);s.set(h,{key:l,def:m}),m.short&&i.set(m.short,{key:l,def:m})}let a={},c=[],f=[],d=0;for(;d<n.length;){let l=n[d];if(l==="--"){for(d++;d<n.length;)f.push(n[d]),d++;break}if(l.startsWith("--")){let m=l.indexOf("="),h,p;m!==-1?(h=l.slice(2,m),p=l.slice(m+1)):h=l.slice(2);let g=s.get(h);if(!g){if(h.startsWith("no-")){let E=s.get(h.slice(3));if(E&&E.def._kind==="flag"){a[E.key]=E.def.counted?0:!1,d++;continue}}let b=[...s.keys()];o.push({type:"unknown_option",name:`--${h}`,suggestions:Qr(h,b).map(E=>`--${E}`)}),d++;continue}if(g.def._kind==="flag"){g.def.counted?a[g.key]=(a[g.key]||0)+1:a[g.key]=!0,d++;continue}let w=p??n[++d];if(w===void 0){o.push({type:"missing_value",name:g.key}),d++;continue}let k=hr(w,g.def.type,g.key,o);k!==void 0&&(a[g.key]=k),d++;continue}if(l.startsWith("-")&&l.length>1){let m=l.slice(1);for(let h=0;h<m.length;h++){let p=m[h],g=i.get(p);if(!g){let E=[];s.has(p)&&E.push(`--${p}`),o.push({type:"unknown_option",name:`-${p}`,suggestions:E});continue}if(g.def._kind==="flag"){g.def.counted?a[g.key]=(a[g.key]||0)+1:a[g.key]=!0;continue}let w=m.slice(h+1),k=w.length>0?w:n[++d];if(k===void 0){o.push({type:"missing_value",name:g.key});break}let b=hr(k,g.def.type,g.key,o);b!==void 0&&(a[g.key]=b);break}d++;continue}c.push(l),d++}let u=0;for(let l=0;l<t.length;l++){let m=t[l],h=m.name??`arg${l}`;if(m.variadic){let p=c.slice(u);p.length>0?a[h]=p.map(g=>hr(g,m.type,h,o)):m.required?o.push({type:"missing_required",name:h,kind:"arg"}):m.default!==void 0?a[h]=m.default:a[h]=[],u=c.length}else{let p=c[u];p!==void 0?(a[h]=hr(p,m.type,h,o),u++):m.required?o.push({type:"missing_required",name:h,kind:"arg"}):m.default!==void 0&&(a[h]=m.default)}}if(u<c.length)for(let l=u;l<c.length;l++)o.push({type:"unexpected_positional",value:c[l],maxPositionals:t.length});for(let[l,m]of Object.entries(e))if(a[l]===void 0){if(m._kind==="flag")a[l]=m.default??(m.counted?0:!1);else if(m._kind==="option"){let h=m;if(h.env&&r?.[h.env]!==void 0){let p=hr(r[h.env],h.type,l,o);p!==void 0&&(a[l]=p)}a[l]===void 0&&(h.required&&h.default===void 0?o.push({type:"missing_required",name:l,kind:"option"}):h.default!==void 0&&(a[l]=h.default))}}return o.length>0?{ok:!1,errors:o}:{ok:!0,args:a,passthrough:f}}function hr(e,t,n,r){switch(t){case"string":return e;case"number":{let o=Number(e);if(Number.isNaN(o)){r.push({type:"invalid_type",name:n,expected:"number",received:e});return}return o}case"boolean":{if(e==="true"||e==="1")return!0;if(e==="false"||e==="0")return!1;r.push({type:"invalid_type",name:n,expected:"boolean",received:e});return}default:return e}}function pr(e){return e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}function po(e){let t=[],n=e.children.size>0;e.description?t.push(`${e.fullPath} - ${e.description}`):t.push(e.fullPath),t.push("");let r=[e.fullPath];n&&r.push("<command>"),Object.keys(e.options).length>0&&r.push("[options]");let o=e.args;for(let i of o){let a=i.name??"arg",c=i.variadic?`${a}...`:a;r.push(i.required?`<${c}>`:`[${c}]`)}if(t.push("Usage:"),t.push(` ${r.join(" ")}`),t.push(""),n){t.push("Commands:");let i=[];for(let[c,f]of e.children)i.push([c,f.description||""]);let a=Math.max(...i.map(([c])=>c.length));for(let[c,f]of i)if(f){let d=" ".repeat(a-c.length+2);t.push(` ${c}${d}${f}`)}else t.push(` ${c}`);t.push("")}if(o.length>0){t.push("Arguments:");let i=[];for(let c of o){let f=c.name??"arg",d=c.variadic?`${f}...`:f,u=[];c.description&&u.push(c.description),c.required&&u.push("(required)"),c.default!==void 0&&u.push(`(default: ${JSON.stringify(c.default)})`),i.push([d,u.join(" ")])}let a=Math.max(...i.map(([c])=>c.length));for(let[c,f]of i)if(f){let d=" ".repeat(a-c.length+2);t.push(` ${c}${d}${f}`)}else t.push(` ${c}`);t.push("")}let s=fd(e.options);if(s.length>0&&(t.push("Options:"),t.push(...s),t.push("")),e.examples.length>0){t.push("Examples:");for(let i of e.examples)t.push(` ${i}`);t.push("")}return t.join(`
|
|
55
|
-
`)}function fd(e,t){let n=Object.entries(e);if(n.length===0)return[];let r=[];for(let[i,a]of n){let c=pr(i);if(a._kind==="flag"){let f=a,d=[];f.short&&d.push(`-${f.short},`),d.push(`--${c}`);let u=[];f.description&&u.push(f.description),f.counted&&u.push("(counted)"),f.default!==void 0&&u.push(`(default: ${f.default})`),r.push([d.join(" "),u.join(" ")])}else{let f=a,d=[];f.short&&d.push(`-${f.short},`),d.push(`--${c} <${f.type}>`);let u=[];f.description&&u.push(f.description),f.required&&u.push("(required)"),f.default!==void 0&&u.push(`(default: ${JSON.stringify(f.default)})`),f.env&&u.push(`[env: ${f.env}]`),r.push([d.join(" "),u.join(" ")])}}let o=Math.max(...r.map(([i])=>i.length)),s=[];t&&s.push(t);for(let[i,a]of r)if(a){let c=" ".repeat(o-i.length+2);s.push(` ${i}${c}${a}`)}else s.push(` ${i}`);return s}function ji(e){if(!e)return{};let t={};for(let[n,r]of Object.entries(e))t[n]=r._def;return t}function Li(e){return e?e.map(t=>t._def):[]}var es=class e{name;description;options;args;examples;handler;transformArgs;children=new Map;parent;constructor(t,n,r,o,s,i,a){this.name=t,this.description=n,this.options=r,this.args=o,this.examples=s,this.handler=i,this.transformArgs=a}command(t,n){let r=new e(t,n.description,ji(n.options),Li(n.args),n.examples??[],n.handler,n.transformArgs);return r.parent=this,this.children.set(t,r),r}get fullPath(){let t=[],n=this;for(;n;)t.unshift(n.name),n=n.parent;return t.join(" ")}toCommand(){return{name:this.name,execute:this.execute.bind(this)}}get allOptions(){return this.options}toTokens(t){let n=[],r=this.allOptions,o=t;for(let[s,i]of Object.entries(r)){let a=o[s],c=pr(s);if(i._kind==="flag")if(i.counted&&typeof a=="number"&&a>0)for(let f=0;f<a;f++)n.push(`--${c}`);else a===!0?n.push(`--${c}`):a===!1&&i.default===!0&&n.push(`--no-${c}`);else i._kind==="option"&&a!==void 0&&n.push(`--${c}`,String(a))}for(let s of this.args){let i=s.name??"arg",a=o[i];if(a!==void 0)if(s.variadic&&Array.isArray(a))for(let c of a)n.push(String(c));else n.push(String(a))}return n}async invoke(t,n){if(!this.handler)return{stdout:"",stderr:`Command "${this.fullPath}" has no handler`,exitCode:1};let r={...t},o=this.allOptions;for(let[s,i]of Object.entries(o))if(r[s]===void 0){if(i._kind==="flag")r[s]=i.default??(i.counted?0:!1);else if(i._kind==="option"){if(i.default!==void 0)r[s]=i.default;else if(i.required)return{stdout:"",stderr:`Missing required option "${s}"`,exitCode:1}}}for(let s of this.args){let i=s.name??"arg";if(r[i]===void 0){if(s.default!==void 0)r[i]=s.default;else if(s.required)return{stdout:"",stderr:`Missing required arg "${i}"`,exitCode:1}}}try{return await this.handler(r,n,{passthrough:[]})}catch(s){return{stdout:"",stderr:s instanceof Error?s.message:String(s),exitCode:1}}}async execute(t,n){let r=n?.env?Object.fromEntries(n.env):{},o=t[0];if(o&&!o.startsWith("-")){let s=this.children.get(o);if(s)return s.execute(t.slice(1),n)}if(dd(t))return{stdout:po(this),stderr:"",exitCode:0};if(this.handler){let s=this.transformArgs?this.transformArgs([...t]):[...t],i=Mi(this.allOptions,this.args,s,r);if(!i.ok)return{stdout:"",stderr:ho(i.errors),exitCode:1};try{return await this.handler(i.args,n,{passthrough:i.passthrough})}catch(a){return{stdout:"",stderr:a instanceof Error?a.message:String(a),exitCode:1}}}if(o&&!o.startsWith("-")){let s=Qr(o,[...this.children.keys()]);return{stdout:"",stderr:ho([{type:"unknown_command",path:`${this.fullPath} ${o}`,suggestions:s}]),exitCode:1}}return{stdout:po(this),stderr:"",exitCode:0}}};function go(e,t){return new es(e,t.description,ji(t.options),Li(t.args),t.examples??[],t.handler,t.transformArgs)}function dd(e){return e.some(t=>t==="--help"||t==="-h")}
|
|
55
|
+
`)}function fd(e,t){let n=Object.entries(e);if(n.length===0)return[];let r=[];for(let[i,a]of n){let c=pr(i);if(a._kind==="flag"){let f=a,d=[];f.short&&d.push(`-${f.short},`),d.push(`--${c}`);let u=[];f.description&&u.push(f.description),f.counted&&u.push("(counted)"),f.default!==void 0&&u.push(`(default: ${f.default})`),r.push([d.join(" "),u.join(" ")])}else{let f=a,d=[];f.short&&d.push(`-${f.short},`),d.push(`--${c} <${f.type}>`);let u=[];f.description&&u.push(f.description),f.required&&u.push("(required)"),f.default!==void 0&&u.push(`(default: ${JSON.stringify(f.default)})`),f.env&&u.push(`[env: ${f.env}]`),r.push([d.join(" "),u.join(" ")])}}let o=Math.max(...r.map(([i])=>i.length)),s=[];t&&s.push(t);for(let[i,a]of r)if(a){let c=" ".repeat(o-i.length+2);s.push(` ${i}${c}${a}`)}else s.push(` ${i}`);return s}function ji(e){if(!e)return{};let t={};for(let[n,r]of Object.entries(e))t[n]=r._def;return t}function Li(e){return e?e.map(t=>t._def):[]}var es=class e{name;description;options;args;examples;handler;transformArgs;children=new Map;parent;constructor(t,n,r,o,s,i,a){this.name=t,this.description=n,this.options=r,this.args=o,this.examples=s,this.handler=i,this.transformArgs=a}command(t,n){let r=new e(t,n.description,ji(n.options),Li(n.args),n.examples??[],n.handler,n.transformArgs);return r.parent=this,this.children.set(t,r),r}get fullPath(){let t=[],n=this;for(;n;)t.unshift(n.name),n=n.parent;return t.join(" ")}toCommand(){return{name:this.name,execute:this.execute.bind(this)}}get allOptions(){return this.options}toTokens(t){let n=[],r=this.allOptions,o=t;for(let[s,i]of Object.entries(r)){let a=o[s],c=pr(s);if(i._kind==="flag")if(i.counted&&typeof a=="number"&&a>0)for(let f=0;f<a;f++)n.push(`--${c}`);else a===!0?n.push(`--${c}`):a===!1&&i.default===!0&&n.push(`--no-${c}`);else i._kind==="option"&&a!==void 0&&n.push(`--${c}`,String(a))}for(let s of this.args){let i=s.name??"arg",a=o[i];if(a!==void 0)if(s.variadic&&Array.isArray(a))for(let c of a)n.push(String(c));else n.push(String(a))}return n}async invoke(t,n){if(!this.handler)return{stdout:"",stderr:`Command "${this.fullPath}" has no handler`,exitCode:1};let r={...t},o=this.allOptions;for(let[s,i]of Object.entries(o))if(r[s]===void 0){if(i._kind==="flag")r[s]=i.default??(i.counted?0:!1);else if(i._kind==="option"){if(i.default!==void 0)r[s]=i.default;else if(i.required)return{stdout:"",stderr:`Missing required option "${s}"`,exitCode:1}}}for(let s of this.args){let i=s.name??"arg";if(r[i]===void 0){if(s.default!==void 0)r[i]=s.default;else if(s.required)return{stdout:"",stderr:`Missing required arg "${i}"`,exitCode:1}}}try{return await this.handler(r,n,{passthrough:[]})}catch(s){return{stdout:"",stderr:s instanceof Error?s.message:String(s),exitCode:1}}}async execute(t,n){let r=n?.env?Object.fromEntries(n.env):{},o=t[0];if(o&&!o.startsWith("-")){let s=this.children.get(o);if(s)return s.execute(t.slice(1),n)}if(dd(t))return{stdout:po(this),stderr:"",exitCode:0};if(this.handler){let s=this.transformArgs?this.transformArgs([...t]):[...t],i=Mi(this.allOptions,this.args,s,r);if(!i.ok)return{stdout:"",stderr:ho(i.errors),exitCode:1};try{return await this.handler(i.args,n,{passthrough:i.passthrough})}catch(a){return{stdout:"",stderr:a instanceof Error?a.message:String(a),exitCode:1}}}if(o&&!o.startsWith("-")){let s=Qr(o,[...this.children.keys()]);return{stdout:"",stderr:ho([{type:"unknown_command",path:`${this.fullPath} ${o}`,suggestions:s}]),exitCode:1}}return{stdout:po(this),stderr:"",exitCode:0}}};function go(e,t){return new es(e,t.description,ji(t.options),Li(t.args),t.examples??[],t.handler,t.transformArgs)}function dd(e){return e.some(t=>t==="--help"||t==="-h")}ne();Es();Ee();de();ws();var $s=1,Go=2,Rs=4,No=8,vr=16,Sa=new Set(["*","?","[","\\"]),El={glob:$s,literal:Go,icase:Rs,top:No,exclude:vr};function Un(e){for(let t=0;t<e.length;t++)if(Sa.has(e[t]))return!0;return!1}function kl(e){for(let t=0;t<e.length;t++)if(Sa.has(e[t]))return t;return e.length}function Aa(e){let t=e.split("/"),n=[];for(let r of t)if(!(r===""||r===".")){if(r===".."){n.length>0&&n[n.length-1]!==".."&&n.pop();continue}n.push(r)}return n.join("/")}function Ge(e,t){let n=0,r=e;if(r.startsWith(":(")){let c=r.indexOf(")");if(c!==-1){let f=r.slice(2,c);r=r.slice(c+1);for(let d of f.split(",")){let u=El[d.trim()];u!==void 0&&(n|=u)}}}else r.startsWith(":/")?(n|=No,r=r.slice(2)):(r.startsWith(":!")||r.startsWith(":^"))&&(n|=vr,r=r.slice(2));n&Go&&n&$s&&(n&=~$s);let o;n&No||t===""?o=Aa(r):o=Aa(`${t}/${r}`);let s=!!(n&Go),i=s?!1:Un(o),a=s?o.length:kl(o);return{original:e,pattern:o,magic:n,hasWildcard:i,nowildcardLen:a}}function Is(e,t){let{pattern:n,hasWildcard:r,magic:o,nowildcardLen:s}=e;if(n==="")return!0;if(!r){let a=!!(o&Rs),c=a?n.toLowerCase():n,f=a?t.toLowerCase():t;return!!(c===f||f.startsWith(c)&&f[c.length]==="/"||c.endsWith("/")&&f.startsWith(c))}if(s>0){let a=n.slice(0,s),c=t.slice(0,s);if(o&Rs){if(a.toLowerCase()!==c.toLowerCase())return!1}else if(a!==c)return!1}let i=0;return o&$s&&(i|=2),o&Rs&&(i|=1),Gn(n,t,i)===0}function be(e,t){let n=!1,r=!1;for(let o of e)o.magic&vr?Is(o,t)&&(r=!0):Is(o,t)&&(n=!0);return n&&!r}Je();function Ma(e,t){e.command("add",{description:"Add file contents to the index",args:[B.string().name("paths").describe("Pathspec of files to add").optional().variadic()],options:{all:H().alias("A").describe("Add changes from all tracked and untracked files"),force:H().alias("f").describe("Allow adding otherwise ignored files"),update:H().alias("u").describe("Update tracked files"),"dry-run":H().alias("n").describe("Don't actually add the file(s)")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o,i=qe(s);if(i)return i;let a=s.workTree,c={skipIgnore:n.force,updateOnly:n.update,actions:n["dry-run"]?[]:void 0},f=n.paths;if((n.all||n.update)&&f.length===0){let p=await q(s);return p=await Da(s,p,a,"",c),n["dry-run"]||await ce(s,p),{stdout:c.actions?c.actions.join(""):"",stderr:"",exitCode:0}}if(f.length===0)return{stdout:"",stderr:`Nothing specified, nothing added.
|
|
56
56
|
Maybe you wanted to say 'git add .'?`,exitCode:0};let d=await q(s),u=[],l=[];for(let p of f)Un(p)?l.push(p):u.push(p);let m=[];for(let p of u){let g=xt(r.cwd,p),w=st(a,g);if((w==="."||w==="")&&(w=""),w.startsWith(".."))return O(`'${p}' is outside repository at '${a}'`);if(await r.fs.exists(g)){if(!n.force&&w!==""){let E=d.entries.some(C=>C.path===w||C.path.startsWith(`${w}/`)),x=await Cl(s,a,w,E);if(x){m.push(x);continue}}if((await r.fs.stat(g)).isDirectory)d=await Da(s,d,g,w,c);else{let E=d.entries.find(C=>C.path===w&&C.stage===0)?.hash,x=await nn(s,d,w);d=x.index,c.actions&&x.hash!==E&&c.actions.push(`add '${w}'
|
|
57
57
|
`)}}else if(d.entries.some(E=>E.path===w||E.path.startsWith(`${w}/`))){if(c.actions)for(let E of d.entries)(E.path===w||E.path.startsWith(`${w}/`))&&c.actions.push(`remove '${E.path}'
|
|
58
58
|
`);d={...d,entries:d.entries.filter(E=>E.path!==w&&!E.path.startsWith(`${w}/`))}}else return O(`pathspec '${p}' did not match any files`)}if(m.length>0)return N(`The following paths are ignored by one of your .gitignore files:
|
|
@@ -66,7 +66,7 @@ hint: Disable this message with "git config set advice.addIgnoredFile false"
|
|
|
66
66
|
`),n=(await nn(e,n,m)).index}}for(let u=0;u<a.length;u++){let l=a[u];if(!c[u]&&!(l.magic&vr))return{index:n,error:O(`pathspec '${l.original}' did not match any files`)}}return{index:n}}async function Da(e,t,n,r,o){let s=r===""?"":`${r}/`,i=e.workTree,a=[],c=new Set;for(let f of t.entries){if(!(s===""||f.path.startsWith(s))||c.has(f.path))continue;c.add(f.path);let d=T(i,f.path);if(await e.fs.exists(d)){let u=f.stage>0,l=await nn(e,t,f.path);t=l.index,o?.actions&&(u||l.hash!==f.hash)&&o.actions.push(`add '${f.path}'
|
|
67
67
|
`)}else o?.actions&&o.actions.push(`remove '${f.path}'
|
|
68
68
|
`),a.push(f.path)}for(let f of a)t=nt(t,f);if(!o?.updateOnly){let f=new Set(t.entries.map(u=>u.path)),d=await Ze(e,n,r===""?"":r,{skipIgnore:o?.skipIgnore});for(let u of d){if(f.has(u))continue;o?.actions&&o.actions.push(`add '${u}'
|
|
69
|
-
`),t=(await nn(e,t,u)).index}}return t}async function Cl(e,t,n,r){let o=await tr(e);try{let i=await e.fs.readFile(T(t,".gitignore"));o=Nn(o,i,"",T(t,".gitignore"))}catch{}let s=n.split("/");for(let i=0;i<s.length-1;i++){let a=s.slice(0,i+1).join("/"),c=T(t,a);if(Wt(o,a,!0)==="ignored")return a;try{let f=await e.fs.readFile(T(c,".gitignore"));o=Nn(o,f,a,T(c,".gitignore"))}catch{}}if(!r){let i=await e.fs.stat(T(t,n)).then(a=>a.isDirectory).catch(()=>!1);if(Wt(o,n,i)==="ignored")return n}return null}
|
|
69
|
+
`),t=(await nn(e,t,u)).index}}return t}async function Cl(e,t,n,r){let o=await tr(e);try{let i=await e.fs.readFile(T(t,".gitignore"));o=Nn(o,i,"",T(t,".gitignore"))}catch{}let s=n.split("/");for(let i=0;i<s.length-1;i++){let a=s.slice(0,i+1).join("/"),c=T(t,a);if(Wt(o,a,!0)==="ignored")return a;try{let f=await e.fs.readFile(T(c,".gitignore"));o=Nn(o,f,a,T(c,".gitignore"))}catch{}}if(!r){let i=await e.fs.stat(T(t,n)).then(a=>a.isDirectory).catch(()=>!1);if(Wt(o,n,i)==="ignored")return n}return null}ne();ne();rr();se();de();ue();async function Ce(e,t){let n=T(e.gitDir,t);return await e.fs.exists(n)?e.fs.readFile(n):null}async function Pe(e,t,n){await e.fs.writeFile(T(e.gitDir,t),n)}async function Me(e,t){let n=T(e.gitDir,t);await e.fs.exists(n)&&await e.fs.rm(n)}async function Ar(e){await le(e,"MERGE_HEAD"),await le(e,"ORIG_HEAD"),await Me(e,"MERGE_MSG"),await Me(e,"MERGE_MODE")}async function jt(e){await le(e,"CHERRY_PICK_HEAD"),await le(e,"ORIG_HEAD"),await Me(e,"MERGE_MSG")}async function Tt(e){await le(e,"REVERT_HEAD"),await le(e,"ORIG_HEAD"),await Me(e,"MERGE_MSG")}async function Wn(e){for(let t of["CHERRY_PICK_HEAD","REVERT_HEAD","MERGE_HEAD","ORIG_HEAD"])await le(e,t);await Me(e,"MERGE_MSG"),await Me(e,"MERGE_MODE")}var Uo="DETACH_POINT";async function La(e,t){await e.fs.writeFile(T(e.gitDir,Uo),t)}async function dt(e){let t=T(e.gitDir,Uo);await e.fs.exists(t)&&await e.fs.rm(t)}async function Sr(e){let t=T(e.gitDir,Uo);return await e.fs.exists(t)?(await e.fs.readFile(t))?.trim()??null:null}de();ue();async function wt(e){let t=await Ce(e,"BISECT_START");return t!=null&&t.trim().length>0}async function Dr(e){let t=await Ce(e,"BISECT_TERMS");if(!t)return{termBad:"bad",termGood:"good"};let n=t.trim().split(`
|
|
70
70
|
`);return{termBad:n[0]??"bad",termGood:n[1]??"good"}}async function Ts(e){let t=(await Ce(e,"BISECT_START"))?.trim()??"",{termBad:n,termGood:r}=await Dr(e),o=await _(e,`refs/bisect/${n}`),s=[],i=[],a=await ge(e,"refs/bisect");for(let d of a)d.name.startsWith(`refs/bisect/${r}-`)?s.push(d.hash):d.name.startsWith("refs/bisect/skip-")&&i.push(d.hash);let c=await Ce(e,"BISECT_HEAD")!=null||await e.fs.exists(T(e.gitDir,"BISECT_HEAD")),f=await e.fs.exists(T(e.gitDir,"BISECT_FIRST_PARENT"));return{startRef:t,badHash:o,goodHashes:s,skipHashes:i,termBad:n,termGood:r,noCheckout:c,firstParent:f}}async function bt(e,t){let n=await Ce(e,"BISECT_LOG")??"";await Pe(e,"BISECT_LOG",n+t+`
|
|
71
71
|
`)}async function Hs(e){let t=await ge(e,"refs/bisect");for(let r of t)await le(e,r.name);await Me(e,"BISECT_EXPECTED_REV"),await Me(e,"BISECT_ANCESTORS_OK"),await Me(e,"BISECT_LOG"),await Me(e,"BISECT_TERMS"),await Me(e,"BISECT_NAMES"),await Me(e,"BISECT_FIRST_PARENT"),await Me(e,"BISECT_HEAD"),await Me(e,"BISECT_START");let n=T(e.gitDir,"refs","bisect");if(await e.fs.exists(n))try{await e.fs.rm(n,{recursive:!0})}catch{}}async function Ga(e,t,n,r,o){let s=[],i=new Map;for await(let g of zt(e,t,{exclude:n})){let w=o?g.commit.parents.slice(0,1):g.commit.parents;s.push({hash:g.hash,subject:oe(g.commit.message)}),i.set(g.hash,w)}let a=s.length;if(a===0)return null;if(a===1)return{hash:s[0].hash,subject:s[0].subject,remaining:0,steps:0,found:!0,onlySkippedLeft:!1};let c=new Set(s.map(g=>g.hash)),f=new Map;for(let g of s){let w=new Set,k=[g.hash],b=0;for(;b<k.length;){let E=k[b++];if(w.has(E)||!c.has(E))continue;w.add(E);let x=i.get(E);if(x)for(let C of x)!w.has(C)&&c.has(C)&&k.push(C)}f.set(g.hash,w.size)}let d=s[0].hash,u=a;for(let g of s){if(r.has(g.hash))continue;let w=f.get(g.hash)??0,k=Math.abs(2*w-a);k<u&&(u=k,d=g.hash)}let l=!1;if(u===a){l=!0;for(let g of s){let w=f.get(g.hash)??0,k=Math.abs(2*w-a);k<u&&(u=k,d=g.hash)}}let m=s.find(g=>g.hash===d),h=Rl(a),p=$l(a);return{hash:m.hash,subject:m.subject,remaining:h,steps:p,found:!1,onlySkippedLeft:l}}function Rl(e){return Math.floor((e-1)/2)}function $l(e){return e<=1?0:Math.ceil(Math.log2(e))}function Na(e){let t=e.badHash!=null,n=e.goodHashes.length;return!t&&n===0?`status: waiting for both ${e.termGood} and ${e.termBad} commits
|
|
72
72
|
`:t?n===0?`status: waiting for ${e.termGood} commit(s), ${e.termBad} commit known
|
|
@@ -80,7 +80,7 @@ hint: Disable this message with "git config set advice.addIgnoredFile false"
|
|
|
80
80
|
`,i+=`
|
|
81
81
|
`,i+=` ${r}
|
|
82
82
|
`,i+=`
|
|
83
|
-
`,i}
|
|
83
|
+
`,i}ne();rr();Xe();Ee();se();de();Le();ue();ne();rr();Xe();Ee();se();de();se();Jt();de();function sr(e){return T(e.gitDir,"rebase-merge")}async function Ht(e){return e.fs.exists(sr(e))}async function lt(e){let t=sr(e);if(!await e.fs.exists(t))return null;let n=await e.fs.readFile(T(t,"head-name")),r=await e.fs.readFile(T(t,"orig-head")),o=await e.fs.readFile(T(t,"onto")),s=Number.parseInt(await e.fs.readFile(T(t,"msgnum")),10),i=Number.parseInt(await e.fs.readFile(T(t,"end")),10),a=await e.fs.exists(T(t,"git-rebase-todo"))?T(t,"git-rebase-todo"):T(t,"todo"),c=Ua(await e.fs.readFile(a)),f=await e.fs.exists(T(t,"done"))?await e.fs.readFile(T(t,"done")):"",d=Ua(f);return{headName:n.trim(),origHead:r.trim(),onto:o.trim(),todo:c,done:d,msgnum:s,end:i}}async function Bo(e,t){let n=sr(e);await e.fs.mkdir(n,{recursive:!0}),await e.fs.writeFile(T(n,"head-name"),`${t.headName}
|
|
84
84
|
`),await e.fs.writeFile(T(n,"orig-head"),`${t.origHead}
|
|
85
85
|
`),await e.fs.writeFile(T(n,"onto"),`${t.onto}
|
|
86
86
|
`),await e.fs.writeFile(T(n,"msgnum"),`${String(t.msgnum)}
|
|
@@ -131,8 +131,8 @@ to do so with:
|
|
|
131
131
|
|
|
132
132
|
`}async function Vo(e,t){let n=await M(e,t);return`Previous HEAD position was ${z(t)} ${oe(n.message)}
|
|
133
133
|
`}async function Gs(e,t,n){let r=await Fo(e,t,{targetHash:n});return r.length>0?Ll(r):t!==n?Vo(e,t):""}async function ir(e,t,n,r,o,s){let i=await Z(e);if(i?.type==="symbolic"&&i.target===n)return{stdout:"",stderr:`Already on '${t}'
|
|
134
|
-
`,exitCode:0};let a=await q(e),c=Pn(a);if(c)return c;let f=await X(e),u=(await M(e,r)).tree,l=null;if(f&&(l=(await M(e,f)).tree),l!==u){let b=await kn(e,l,u,a);if(!b.success)return b.errorOutput??N("error: checkout would overwrite local changes");a={version:2,entries:b.newEntries},await ce(e,a),await Oe(e,b.worktreeOps)}let m="";i?.type==="direct"&&f&&(m=await Gs(e,f,r));let h=i?.type==="symbolic"?i.target.replace(/^refs\/heads\//,""):f??J;await Fe(e,"HEAD",n),await dt(e);let p=await an(e);await
|
|
135
|
-
${p}`,exitCode:0}}async function Rn(e,t,n,r,o){let s=await q(e),i=Pn(s);if(i)return i;let a=await X(e),c=await M(e,t),f=c.tree,d=null;if(a&&(d=(await M(e,a)).tree),d!==f){let b=await kn(e,d,f,s);if(!b.success)return b.errorOutput??N("error: checkout would overwrite local changes");s={version:2,entries:b.newEntries},await ce(e,s),await Oe(e,b.worktreeOps)}let u=await Z(e),l=u?.type==="direct"&&a===t;if(await V(e,"HEAD",t),!l){await La(e,t);let b=u?.type==="symbolic"?u.target.replace(/^refs\/heads\//,""):a??J;await
|
|
134
|
+
`,exitCode:0};let a=await q(e),c=Pn(a);if(c)return c;let f=await X(e),u=(await M(e,r)).tree,l=null;if(f&&(l=(await M(e,f)).tree),l!==u){let b=await kn(e,l,u,a);if(!b.success)return b.errorOutput??N("error: checkout would overwrite local changes");a={version:2,entries:b.newEntries},await ce(e,a),await Oe(e,b.worktreeOps)}let m="";i?.type==="direct"&&f&&(m=await Gs(e,f,r));let h=i?.type==="symbolic"?i.target.replace(/^refs\/heads\//,""):f??J;await Fe(e,"HEAD",n),await dt(e);let p=await an(e);await te(e,o,"HEAD",f,r,`checkout: moving from ${h} to ${t}`),await s?.hooks?.emitPost("post-checkout",{prevHead:f,newHead:r,isBranchCheckout:!0});let g=await Kn(e,u,a),w=await he(e),k=await on(e,w,t);return k&&(g+=qn(k)),{stdout:g,stderr:`${m}Switched to branch '${t}'
|
|
135
|
+
${p}`,exitCode:0}}async function Rn(e,t,n,r,o){let s=await q(e),i=Pn(s);if(i)return i;let a=await X(e),c=await M(e,t),f=c.tree,d=null;if(a&&(d=(await M(e,a)).tree),d!==f){let b=await kn(e,d,f,s);if(!b.success)return b.errorOutput??N("error: checkout would overwrite local changes");s={version:2,entries:b.newEntries},await ce(e,s),await Oe(e,b.worktreeOps)}let u=await Z(e),l=u?.type==="direct"&&a===t;if(await V(e,"HEAD",t),!l){await La(e,t);let b=u?.type==="symbolic"?u.target.replace(/^refs\/heads\//,""):a??J;await te(e,n,"HEAD",a,t,`checkout: moving from ${b} to ${t}`)}let m=await an(e);await r?.hooks?.emitPost("post-checkout",{prevHead:a,newHead:t,isBranchCheckout:!1});let h=z(t),p=oe(c.message),g=u?.type==="direct",w="";return g&&a&&a!==t&&(w+=await Gs(e,a,t)),g||!o?.detachAdviceTarget?w+=`HEAD is now at ${h} ${p}
|
|
136
136
|
`:w=`Note: switching to '${o.detachAdviceTarget}'.
|
|
137
137
|
|
|
138
138
|
You are in 'detached HEAD' state. You can look around, make experimental
|
|
@@ -178,7 +178,7 @@ The first bad commit could be any of:
|
|
|
178
178
|
`;return r.badHash&&(s+=r.badHash+`
|
|
179
179
|
`),s+=`We cannot bisect more!
|
|
180
180
|
`,{stdout:s,stderr:"",exitCode:2}}if(r.noCheckout)await Pe(e,"BISECT_HEAD",o.hash);else{let s=await Rn(e,o.hash,t,n);if(s.exitCode!==0)return s}return await Pe(e,"BISECT_EXPECTED_REV",o.hash+`
|
|
181
|
-
`),{stdout:_a(o),stderr:"",exitCode:0}}
|
|
181
|
+
`),{stdout:_a(o),stderr:"",exitCode:0}}ne();se();function vt(e){if(e.length===0)return[];let t=e.split(`
|
|
182
182
|
`);return t[t.length-1]===""&&t.pop(),t}function Lt(e){if(e.length===0)return[];let t=[],n=0;for(let r=0;r<e.length;r++)e[r]===`
|
|
183
183
|
`&&(t.push(e.slice(n,r+1)),n=r+1);return n<e.length&&t.push(e.slice(n)),t}var Ql=4,nc=1024,Ns=100,Us=0,_s=1,ar=2;function Zo(e){let t=1;for(;t*t<e;)t++;return t}function eu(e,t){let n=new Map,r=[],o=new Array(e.length),s=new Array(t.length);for(let i=0;i<e.length;i++){let a=e[i],c=n.get(a);c===void 0&&(c=r.length,n.set(a,c),r.push({len1:0,len2:0})),r[c].len1++,o[i]=c}for(let i=0;i<t.length;i++){let a=t[i],c=n.get(a);c===void 0&&(c=r.length,n.set(a,c),r.push({len1:0,len2:0})),r[c].len2++,s[i]=c}return{classes1:o,classes2:s,classInfo:r}}function tu(e,t,n,r){let o=0,s=Math.min(t,r);for(;o<s&&e[o]===n[o];)o++;let i=o,a=0,c=s-i;for(;a<c&&e[t-1-a]===n[r-1-a];)a++;return{dstart:i,dend1:t-a-1,dend2:r-a-1}}function rc(e,t,n,r){t-n>Ns&&(n=t-Ns),r-t>Ns&&(r=t+Ns);let o=0,s=1;for(let c=1;t-c>=n;c++){let f=e[t-c];if(f===Us)o++;else if(f===ar)s++;else break}if(o===0)return!1;let i=0,a=1;for(let c=1;t+c<=r;c++){let f=e[t+c];if(f===Us)i++;else if(f===ar)a++;else break}return i===0?!1:(i+=o,a+=s,a*Ql<a+i)}function nu(e,t,n,r,o,s,i,a,c,f){let d=new Uint8Array(t),u=new Uint8Array(r),l=Math.min(Zo(t),nc);for(let g=s;g<=i;g++){let w=o[e[g]].len2;w===0?d[g]=Us:w>=l?d[g]=ar:d[g]=_s}let m=Math.min(Zo(r),nc);for(let g=s;g<=a;g++){let w=o[n[g]].len1;w===0?u[g]=Us:w>=m?u[g]=ar:u[g]=_s}let h=[];for(let g=s;g<=i;g++)d[g]===_s||d[g]===ar&&!rc(d,g,s,i)?h.push(g):c[g]=1;let p=[];for(let g=s;g<=a;g++)u[g]===_s||u[g]===ar&&!rc(u,g,s,a)?p.push(g):f[g]=1;return{refIndex1:h,nreff1:h.length,refIndex2:p,nreff2:p.length}}var $n=20,sc=4,ru=256,su=256,Fs=2147483647;function ut(e,t){return e[t]??0}function ou(e,t,n,r,o,s,i,a,c,f){let d=t-s,u=n-o,l=t-o,m=n-s,h=l-m&1,p=l,g=l,w=m,k=m;i[l]=t,a[m]=n;for(let b=1;;b++){let E=!1;p>d?i[--p-1]=-1:++p,g<u?i[++g+1]=-1:--g;for(let x=g;x>=p;x-=2){let C;ut(i,x-1)>=ut(i,x+1)?C=ut(i,x-1)+1:C=ut(i,x+1);let P=C,R=C-x;for(;C<n&&R<s&&e[C]===r[R];)C++,R++;if(C-P>$n&&(E=!0),i[x]=C,h&&w<=x&&x<=k&&ut(a,x)<=C)return{i1:C,i2:R,minLo:!0,minHi:!0}}w>d?a[--w-1]=Fs:++w,k<u?a[++k+1]=Fs:--k;for(let x=k;x>=w;x-=2){let C;ut(a,x-1)<ut(a,x+1)?C=ut(a,x-1):C=ut(a,x+1)-1;let P=C,R=C-x;for(;C>t&&R>o&&e[C-1]===r[R-1];)C--,R--;if(P-C>$n&&(E=!0),a[x]=C,!h&&p<=x&&x<=g&&C<=ut(i,x))return{i1:C,i2:R,minLo:!0,minHi:!0}}if(!c){if(E&&b>ru){let x=0,C=null;for(let P=g;P>=p;P-=2){let R=P>l?P-l:l-P,y=ut(i,P),$=y-P,v=y-t+($-o)-R;if(v>sc*b&&v>x&&t+$n<=y&&y<n&&o+$n<=$&&$<s){let G=!0;for(let L=1;L<=$n;L++)if(e[y-L]!==r[$-L]){G=!1;break}G&&(x=v,C={i1:y,i2:$,minLo:!0,minHi:!1})}}if(C)return C;x=0,C=null;for(let P=k;P>=w;P-=2){let R=P>m?P-m:m-P,y=ut(a,P),$=y-P,v=n-y+(s-$)-R;if(v>sc*b&&v>x&&t<y&&y<=n-$n&&o<$&&$<=s-$n){let G=!0;for(let L=0;L<$n;L++)if(e[y+L]!==r[$+L]){G=!1;break}G&&(x=v,C={i1:y,i2:$,minLo:!1,minHi:!0})}}if(C)return C}if(b>=f){let x=-1,C=-1;for(let y=g;y>=p;y-=2){let $=Math.min(ut(i,y),n),v=$-y;s<v&&($=s+y,v=s),x<$+v&&(x=$+v,C=$)}let P=Fs,R=Fs;for(let y=k;y>=w;y-=2){let $=Math.max(t,ut(a,y)),v=$-y;v<o&&($=o+y,v=o),$+v<P&&(P=$+v,R=$)}return n+s-P<x-(t+o)?{i1:C,i2:x-C,minLo:!0,minHi:!1}:{i1:R,i2:P-R,minLo:!1,minHi:!0}}}}}function Jo(e,t,n,r,o,s,i,a,c,f,d,u,l,m){for(;t<n&&o<s&&e[t]===r[o];)t++,o++;for(;t<n&&o<s&&e[n-1]===r[s-1];)n--,s--;if(t===n)for(let h=o;h<s;h++)a[f[h]]=1;else if(o===s)for(let h=t;h<n;h++)i[c[h]]=1;else{let h=ou(e,t,n,r,o,s,d,u,l,m);Jo(e,t,h.i1,r,o,h.i2,i,a,c,f,d,u,h.minLo,m),Jo(e,h.i1,n,r,h.i2,s,i,a,c,f,d,u,h.minHi,m)}}function iu(e,t,n,r){let o=[],s=0,i=0,a=1,c=1;for(;s<e.length||i<t.length;){if(s<e.length&&i<t.length&&!n[s]&&!r[i]){o.push({type:"keep",line:e[s]??"",oldLineNo:a++,newLineNo:c++}),s++,i++;continue}for(;s<e.length&&n[s];)o.push({type:"delete",line:e[s]??"",oldLineNo:a++,newLineNo:0}),s++;for(;i<t.length&&r[i];)o.push({type:"insert",line:t[i]??"",oldLineNo:0,newLineNo:c++}),i++}return o}var oc=200,ic=20,ac=100,au=1,cu=21,fu=-30,du=6,lu=-4,uu=10,mu=24,hu=17,pu=23,gu=17,wu=60;function Xo(e){let t=0;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);if(r===32)t+=1;else if(r===9)t+=8-t%8;else if(!(r===10||r===13||r===11||r===12))return t;if(t>=oc)return oc}return-1}function cc(e,t,n){let r={endOfFile:!1,indent:-1,preBlank:0,preIndent:-1,postBlank:0,postIndent:-1};n>=t?(r.endOfFile=!0,r.indent=-1):(r.endOfFile=!1,r.indent=Xo(e[n]));for(let o=n-1;o>=0&&(r.preIndent=Xo(e[o]),r.preIndent===-1);o--)if(r.preBlank+=1,r.preBlank===ic){r.preIndent=0;break}for(let o=n+1;o<t&&(r.postIndent=Xo(e[o]),r.postIndent===-1);o++)if(r.postBlank+=1,r.postBlank===ic){r.postIndent=0;break}return r}function fc(e,t){e.preIndent===-1&&e.preBlank===0&&(t.penalty+=au),e.endOfFile&&(t.penalty+=cu);let n=e.indent===-1?1+e.postBlank:0,r=e.preBlank+n;t.penalty+=fu*r,t.penalty+=du*n;let o=e.indent!==-1?e.indent:e.postIndent,s=r!==0;t.effectiveIndent+=o,o===-1||e.preIndent===-1||(o>e.preIndent?t.penalty+=s?uu:lu:o===e.preIndent||(e.postIndent!==-1&&e.postIndent>o?t.penalty+=s?hu:mu:t.penalty+=s?gu:pu))}function bu(e,t){let n=(e.effectiveIndent>t.effectiveIndent?1:0)-(e.effectiveIndent<t.effectiveIndent?1:0);return wu*n+(e.penalty-t.penalty)}function dc(e,t,n,r,o,s){let i=0,a=0;for(;e[a];)a++;let c=0,f=0;for(;o[f];)f++;let d=(u,l)=>t[u]===t[l];for(;;){if(a!==i){let u,l,m;do{for(u=a-i,l=-1;i>0&&d(i-1,a-1);){for(e[--i]=1,e[--a]=0;e[i-1];)i--;if(c===0)break;for(f=c-1,c=f;o[c-1];c--);}for(m=a,f>c&&(l=a);!(a>=r||!d(i,a));){for(e[i++]=0,e[a++]=1;e[a];)a++;if(f>=s)break;for(c=f+1,f=c;o[f];f++);f>c&&(l=a)}}while(u!==a-i);if(a!==m)if(l!==-1)for(;f===c;){for(e[--a]=0,e[--i]=1;e[i-1];)i--;for(f=c-1,c=f;o[c-1];c--);}else{let h=-1,p={effectiveIndent:0,penalty:0},g=m;for(a-u-1>g&&(g=a-u-1),a-ac>g&&(g=a-ac);g<=a;g++){let w={effectiveIndent:0,penalty:0},k=cc(n,r,g);fc(k,w);let b=cc(n,r,g-u);fc(b,w),(h===-1||bu(w,p)<=0)&&(p={effectiveIndent:w.effectiveIndent,penalty:w.penalty},h=g)}for(;a>h;){for(e[--a]=0,e[--i]=1;e[i-1];)i--;for(f=c-1,c=f;o[c-1];c--);}}}if(a>=r)break;for(i=a+1,a=i;e[a];a++);if(f>=s)break;for(c=f+1,f=c;o[f];f++);}}function Qo(e,t){let n=e.length,r=t.length,o=new Uint8Array(n),s=new Uint8Array(r);if(n>0&&r>0){let{classes1:i,classes2:a,classInfo:c}=eu(e,t),{dstart:f,dend1:d,dend2:u}=tu(i,n,a,r);if(f>d)for(let l=f;l<r-(n-1-d);l++)s[l]=1;else if(f>u)for(let l=f;l<n-(r-1-u);l++)o[l]=1;else{let{refIndex1:l,nreff1:m,refIndex2:h,nreff2:p}=nu(i,n,a,r,c,f,d,u,o,s);if(m>0&&p>0){let g=new Array(m);for(let C=0;C<m;C++)g[C]=i[l[C]];let w=new Array(p);for(let C=0;C<p;C++)w[C]=a[h[C]];let k={},b={},E=m+p+3,x=Math.max(su,Zo(E));Jo(g,0,m,w,0,p,o,s,l,h,k,b,!1,x)}else if(m===0)for(let g=0;g<p;g++)s[h[g]]=1;else for(let g=0;g<m;g++)o[l[g]]=1;dc(o,i,e,n,s,r),dc(s,a,t,r,o,n)}}else n===0?s.fill(1):o.fill(1);return{changedOld:o,changedNew:s}}function it(e,t){let n=e.length,r=t.length;if(n===0&&r===0)return[];if(n===0)return t.map((i,a)=>({type:"insert",line:i,oldLineNo:0,newLineNo:a+1}));if(r===0)return e.map((i,a)=>({type:"delete",line:i,oldLineNo:a+1,newLineNo:0}));let{changedOld:o,changedNew:s}=Qo(e,t);return iu(e,t,o,s)}var yu=3;function Eu(e,t=yu){if(e.length===0)return[];let n=[];for(let a=0;a<e.length;a++){let c=e[a];c&&c.type!=="keep"&&n.push(a)}if(n.length===0)return[];let r=n[0]??0,o=[],s=Math.max(0,r-t),i=Math.min(e.length-1,r+t);for(let a=1;a<n.length;a++){let c=n[a]??0,f=Math.max(0,c-t),d=Math.min(e.length-1,c+t);f<=i+1||(o.push({start:s,end:i}),s=f),i=d}return o.push({start:s,end:i}),o.map(a=>ku(e,a.start,a.end))}function ku(e,t,n){let r=0,o=0,s=0,i=0,a=[],c=!1,f=!1;for(let d=t;d<=n;d++){let u=e[d];if(u)switch(u.type){case"keep":c||(r=u.oldLineNo,c=!0),f||(s=u.newLineNo,f=!0),o++,i++,a.push({type:"context",content:u.line});break;case"delete":c||(r=u.oldLineNo,c=!0),o++,a.push({type:"delete",content:u.line});break;case"insert":f||(s=u.newLineNo,f=!0),i++,a.push({type:"insert",content:u.line});break}}if(c||(r=s>0?s:1),f||(s=r>0?r:1),o===0)for(let d=t;d<=n;d++){let u=e[d];if(u&&u.type==="insert"){r=u.newLineNo>1?u.newLineNo-1:0;break}}if(i===0)for(let d=t;d<=n;d++){let u=e[d];if(u&&u.type==="delete"){s=u.oldLineNo>1?u.oldLineNo-1:0;break}}return{oldStart:r,oldCount:o,newStart:s,newCount:i,lines:a}}function Bs(e){return e?e.length<40?e:z(e):"0000000"}function lc(e,t,n,r,o,s){let{path:i,oldMode:a,newMode:c}=t;e.push(`diff --git a/${i} b/${n}`),s?(e.push(`similarity index ${t.similarity??100}%`),e.push(`rename from ${i}`),e.push(`rename to ${n}`)):r?e.push(`new file mode ${c||"100644"}`):o?e.push(`deleted file mode ${a||"100644"}`):a&&c&&a!==c&&(e.push(`old mode ${a}`),e.push(`new mode ${c}`))}function xu(e,t,n){let{path:r,oldContent:o,newContent:s,oldMode:i,oldHash:a,newHash:c}=e,f=e.renameTo!==void 0,d=e.renameTo??r,u=e.isNew??o==="",l=e.isDeleted??s==="";if(o===s&&!f)return"";let m=[];if(lc(m,e,d,u,l,f),o!==s){if(a||c){let h=Bs(a),p=Bs(c);u||l||f?m.push(`index ${h}..${p}`):m.push(`index ${h}..${p} ${i||"100644"}`)}t&&n?m.push(`Binary files a/${r} and b/${d} differ`):u?m.push(`Binary files /dev/null and b/${d} differ`):l?m.push(`Binary files a/${r} and /dev/null differ`):m.push(`Binary files a/${r} and b/${d} differ`)}return`${m.join(`
|
|
184
184
|
`)}
|
|
@@ -189,11 +189,11 @@ The first bad commit could be any of:
|
|
|
189
189
|
`;if(i||a){let v=Bs(i),G=Bs(a);x||C?P.push(`index ${v}..${G}`):c?P.push(`index ${v}..${G} ${o||"100644"}`):o&&s&&o!==s?P.push(`index ${v}..${G}`):P.push(`index ${v}..${G} ${o||"100644"}`)}let R=v=>v.includes(" ")?" ":"";x?(P.push("--- /dev/null"),P.push(`+++ b/${f}${R(f)}`)):C?(P.push(`--- a/${t}${R(t)}`),P.push("+++ /dev/null")):(P.push(`--- a/${t}${R(t)}`),P.push(`+++ b/${f}${R(f)}`));let y=l.length,$=m.length;for(let v of E){let G=v.oldCount===1?`${v.oldStart}`:`${v.oldStart},${v.oldCount}`,L=v.newCount===1?`${v.newStart}`:`${v.newStart},${v.newCount}`,Y="";for(let A=v.oldStart-2;A>=0;A--){let W=l[A];if(W&&/^[a-zA-Z$_]/.test(W)){Y=` ${W.trimEnd().slice(0,79)}`;break}}P.push(`@@ -${G} +${L} @@${Y}`);let j=v.oldStart,I=v.newStart;for(let A of v.lines)switch(A.type){case"context":P.push(` ${A.content}`),(!h&&j===y||!p&&I===$)&&P.push("\"),j++,I++;break;case"delete":P.push(`-${A.content}`),!h&&j===y&&P.push("\"),j++;break;case"insert":P.push(`+${A.content}`),!p&&I===$&&P.push("\"),I++;break}}return`${P.join(`
|
|
190
190
|
`)}
|
|
191
191
|
`}se();Ie();async function In(e,t,n){return(await fe(e,t)).get(n)?.hash??null}async function uc(e,t,n,r){let o=await _e(e,t,n);if(!o.find(c=>c.status==="added"&&c.path===r))return null;let{renames:i}=await Qe(e,o);return i.find(c=>c.newPath===r)?.oldPath??null}async function Cu(e,t,n,r,o,s){let i=await In(e,(await M(e,t)).tree,n);if(!i){let p=new Map,g=await M(e,t);for(let w of r)p.set(w.finalIdx,On(t,n,w.currentLine,s+w.finalIdx,o[w.finalIdx],g,!1,void 0));return p}let a=await re(e,i),c=vt(a),f=new Array(o.length),d=[...r],u=t,l=n,m=c;for(;d.length>0;){let p=await M(e,u);if(p.parents.length===0){for(let y of d)f[y.finalIdx]=On(u,l,y.currentLine,s+y.finalIdx,o[y.finalIdx],p,!0,void 0);break}let g=await In(e,p.tree,l),w=null,k=[];for(let y of p.parents){let $=await M(e,y),v=l,G=await In(e,$.tree,v);if(!G){let L=await uc(e,$.tree,p.tree,l);L&&(v=L,G=await In(e,$.tree,v))}if(G&&(k.push({hash:y,path:v,blobHash:G}),G===g)){w={hash:y,path:v};break}}if(w){u=w.hash,l=w.path;continue}if(k.length===0){for(let y of d)f[y.finalIdx]=On(u,l,y.currentLine,s+y.finalIdx,o[y.finalIdx],p,!1,void 0);break}let b=k[0],E=await re(e,b.blobHash),x=vt(E),C=it(x,m),P=new Map;for(let y of C)y.type==="keep"&&P.set(y.newLineNo,y.oldLineNo);let R=[];for(let y of d){let $=P.get(y.currentLine);$!==void 0?R.push({finalIdx:y.finalIdx,currentLine:$}):f[y.finalIdx]=On(u,l,y.currentLine,s+y.finalIdx,o[y.finalIdx],p,!1,{hash:b.hash,path:b.path})}d=R,u=b.hash,l=b.path,m=x}let h=new Map;for(let p of r)f[p.finalIdx]&&h.set(p.finalIdx,f[p.finalIdx]);return h}async function mc(e,t,n,r){let o=await M(e,t),s=await In(e,o.tree,n);if(!s)throw new Error(`no such path '${n}' in ${t.slice(0,7)}`);let i=await re(e,s),a=vt(i),c=r?.startLine??1,f=r?.endLine??a.length,d=a.slice(c-1,f),u=new Array(d.length),l=d.map((g,w)=>({finalIdx:w,currentLine:c+w})),m=t,h=n,p=a;for(;l.length>0;){let g=await M(e,m);if(g.parents.length===0){for(let P of l)u[P.finalIdx]=On(m,h,P.currentLine,c+P.finalIdx,d[P.finalIdx],g,!0,void 0);break}let w=await In(e,g.tree,h),k=[],b=null;for(let P of g.parents){let R=await M(e,P),y=h,$=await In(e,R.tree,y);if(!$){let v=await uc(e,R.tree,g.tree,h);v&&(y=v,$=await In(e,R.tree,y))}if($){let v={hash:P,path:y,blobHash:$};if(k.push(v),$===w){b=v;break}}}if(b){m=b.hash,h=b.path;continue}if(k.length===0){for(let P of l)u[P.finalIdx]=On(m,h,P.currentLine,c+P.finalIdx,d[P.finalIdx],g,!1,void 0);break}if(k.length===1){let P=k[0],R=await re(e,P.blobHash),y=vt(R),$=it(y,p),v=new Map;for(let L of $)L.type==="keep"&&v.set(L.newLineNo,L.oldLineNo);let G=[];for(let L of l){let Y=v.get(L.currentLine);Y!==void 0?G.push({finalIdx:L.finalIdx,currentLine:Y}):u[L.finalIdx]=On(m,h,L.currentLine,c+L.finalIdx,d[L.finalIdx],g,!1,{hash:P.hash,path:P.path})}l=G,m=P.hash,h=P.path,p=y;continue}let E=[];for(let P of k){let R=await re(e,P.blobHash),y=vt(R),$=it(y,p),v=new Map;for(let G of $)G.type==="keep"&&v.set(G.newLineNo,G.oldLineNo);E.push({info:P,newToOld:v})}let x=new Map;for(let P of l){let R=!1;for(let y=0;y<E.length;y++){let $=E[y],v=$.newToOld.get(P.currentLine);if(v!==void 0){let G=x.get(y);G||(G={info:$.info,lines:[]},x.set(y,G)),G.lines.push({finalIdx:P.finalIdx,currentLine:v}),R=!0;break}}R||(u[P.finalIdx]=On(m,h,P.currentLine,c+P.finalIdx,d[P.finalIdx],g,!1,{hash:k[0].hash,path:k[0].path}))}let C=x.get(0);for(let[P,R]of x){if(P===0)continue;let y=await Cu(e,R.info.hash,R.info.path,R.lines,d,c);for(let[$,v]of y)u[$]=v}if(C&&C.lines.length>0){l=C.lines,m=C.info.hash,h=C.info.path;let P=await re(e,C.info.blobHash);p=vt(P)}else break}return u}function On(e,t,n,r,o,s,i,a){return{hash:e,origPath:t,origLine:n,finalLine:r,content:o,author:s.author,committer:s.committer,summary:s.message.split(`
|
|
192
|
-
`)[0],boundary:i,previous:a}}
|
|
192
|
+
`)[0],boundary:i,previous:a}}ne();se();Ie();se();de();function Pu(e){let t=e.startsWith("-")?-1:1,n=e.replace(/^[+-]/,""),r=parseInt(n.slice(0,2),10)||0,o=parseInt(n.slice(2,4),10)||0;return t*(r*60+o)}function Ru(e,t){let n=Pu(t),r=new Date((e+n*60)*1e3),o=r.getUTCFullYear(),s=(r.getUTCMonth()+1).toString().padStart(2,"0"),i=r.getUTCDate().toString().padStart(2,"0"),a=r.getUTCHours().toString().padStart(2,"0"),c=r.getUTCMinutes().toString().padStart(2,"0"),f=r.getUTCSeconds().toString().padStart(2,"0");return`${o}-${s}-${i} ${a}:${c}:${f} ${t}`}function $u(e,t,n,r,o){if(e.length===0)return"";let s=Math.max(...e.map(d=>d.finalLine)),i=String(s).length,a=e.some(d=>d.origPath!==t),c=0;if(!o)for(let d of e){let u=r?`<${d.author.email}>`:d.author.name;u.length>c&&(c=u.length)}let f=[];for(let d of e){let u;n?u=d.boundary?`^${d.hash.slice(0,39)}`:d.hash:u=d.boundary?`^${d.hash.slice(0,7)}`:d.hash.slice(0,8);let l=a&&d.origPath!==t?` ${d.origPath}`:"";if(o)f.push(`${u}${l} ${String(d.finalLine).padStart(i)}) ${d.content}`);else{let m=r?`<${d.author.email}>`:d.author.name,h=Ru(d.author.timestamp,d.author.timezone);f.push(`${u}${l} (${m.padEnd(c)} ${h} ${String(d.finalLine).padStart(i)}) ${d.content}`)}}return`${f.join(`
|
|
193
193
|
`)}
|
|
194
194
|
`}function Iu(e,t){let n=new Set,r=[];for(let o of e){let s=!n.has(o.hash);n.add(o.hash),r.push(`${o.hash} ${o.origLine} ${o.finalLine} 1`),(s||t)&&(r.push(`author ${o.author.name}`),r.push(`author-mail <${o.author.email}>`),r.push(`author-time ${o.author.timestamp}`),r.push(`author-tz ${o.author.timezone}`),r.push(`committer ${o.committer.name}`),r.push(`committer-mail <${o.committer.email}>`),r.push(`committer-time ${o.committer.timestamp}`),r.push(`committer-tz ${o.committer.timezone}`),r.push(`summary ${o.summary}`),o.boundary&&r.push("boundary"),o.previous&&r.push(`previous ${o.previous.hash} ${o.previous.path}`),r.push(`filename ${o.origPath}`)),r.push(` ${o.content}`)}return`${r.join(`
|
|
195
195
|
`)}
|
|
196
|
-
`}function Ou(e,t,n){if(e.startsWith("/"))return st(n,e);let r=st(n,t);return r===""||r==="."?e:`${r}/${e}`}function hc(e,t){e.command("blame",{description:"Show what revision and author last modified each line of a file",args:[B.string().name("args").variadic().optional()],options:{lineRange:Q.string().alias("L").describe("Annotate only the given line range (<start>,<end>)"),long:H().alias("l").describe("Show long revision"),showEmail:H().alias("e").describe("Show author email instead of name"),suppress:H().alias("s").describe("Suppress author name and date"),porcelain:H().alias("p").describe("Show in machine-readable format"),linePorcelain:H().describe("Show porcelain format with full headers for each line")},handler:async(n,r,o)=>{let s=await U(r.fs,r.cwd,t);if(S(s))return s;let i=s;if(!i.workTree)return O("this operation must be run in a work tree");let a=await Ke(i);if(S(a))return a;let c=n.args??[],f=o.passthrough??[],d=null,u=null;if(f.length>0?(u=f[f.length-1],c.length>0&&(d=c[0])):c.length===2?(d=c[0],u=c[1]):c.length===1&&(u=c[0]),!u)return O("no file specified");let l=Ou(u,r.cwd,i.workTree),m;if(d){let C=await $t(i,d);if(S(C))return C;m=await Ne(i,C)}else m=a;let h=await M(i,m),p=await fe(i,h.tree);if(!p.has(l))return O(`no such path ${l} in ${d??"HEAD"}`);let g=p.get(l).hash,w=await re(i,g);if($e(w))return O(`cannot blame binary file '${l}'`);let k,b;if(n.lineRange){let C=n.lineRange,P=C.match(/^(\d+),(\d+)$/);if(P)k=parseInt(P[1],10),b=parseInt(P[2],10);else return O(`invalid -L range: '${C}'`)}let E;try{E=await mc(i,m,l,{startLine:k,endLine:b})}catch(C){let P=C instanceof Error?C.message:String(C);return O(P)}let x;return n.porcelain||n.linePorcelain?x=Iu(E,!!n.linePorcelain):x=$u(E,l,!!n.long,!!n.showEmail,!!n.suppress),{stdout:x,stderr:"",exitCode:0}}})}
|
|
196
|
+
`}function Ou(e,t,n){if(e.startsWith("/"))return st(n,e);let r=st(n,t);return r===""||r==="."?e:`${r}/${e}`}function hc(e,t){e.command("blame",{description:"Show what revision and author last modified each line of a file",args:[B.string().name("args").variadic().optional()],options:{lineRange:Q.string().alias("L").describe("Annotate only the given line range (<start>,<end>)"),long:H().alias("l").describe("Show long revision"),showEmail:H().alias("e").describe("Show author email instead of name"),suppress:H().alias("s").describe("Suppress author name and date"),porcelain:H().alias("p").describe("Show in machine-readable format"),linePorcelain:H().describe("Show porcelain format with full headers for each line")},handler:async(n,r,o)=>{let s=await U(r.fs,r.cwd,t);if(S(s))return s;let i=s;if(!i.workTree)return O("this operation must be run in a work tree");let a=await Ke(i);if(S(a))return a;let c=n.args??[],f=o.passthrough??[],d=null,u=null;if(f.length>0?(u=f[f.length-1],c.length>0&&(d=c[0])):c.length===2?(d=c[0],u=c[1]):c.length===1&&(u=c[0]),!u)return O("no file specified");let l=Ou(u,r.cwd,i.workTree),m;if(d){let C=await $t(i,d);if(S(C))return C;m=await Ne(i,C)}else m=a;let h=await M(i,m),p=await fe(i,h.tree);if(!p.has(l))return O(`no such path ${l} in ${d??"HEAD"}`);let g=p.get(l).hash,w=await re(i,g);if($e(w))return O(`cannot blame binary file '${l}'`);let k,b;if(n.lineRange){let C=n.lineRange,P=C.match(/^(\d+),(\d+)$/);if(P)k=parseInt(P[1],10),b=parseInt(P[2],10);else return O(`invalid -L range: '${C}'`)}let E;try{E=await mc(i,m,l,{startLine:k,endLine:b})}catch(C){let P=C instanceof Error?C.message:String(C);return O(P)}let x;return n.porcelain||n.linePorcelain?x=Iu(E,!!n.linePorcelain):x=$u(E,l,!!n.long,!!n.showEmail,!!n.suppress),{stdout:x,stderr:"",exitCode:0}}})}ne();Xe();ln();ne();var Tu=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],Hu=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Vt(e,t){let n=vu(t),r=new Date((e+n*60)*1e3),o=Tu[r.getUTCDay()],s=Hu[r.getUTCMonth()],i=r.getUTCDate(),a=r.getUTCHours().toString().padStart(2,"0"),c=r.getUTCMinutes().toString().padStart(2,"0"),f=r.getUTCSeconds().toString().padStart(2,"0"),d=r.getUTCFullYear();return`${o} ${s} ${i} ${a}:${c}:${f} ${d} ${t}`}function ei(e){let t=e.trim();if(/^\d+$/.test(t))return parseInt(t,10);let n=Date.parse(t);return Number.isNaN(n)?null:Math.floor(n/1e3)}function vu(e){let t=e.startsWith("-")?-1:1,n=e.replace(/^[+-]/,""),r=parseInt(n.slice(0,2),10)||0,o=parseInt(n.slice(2,4),10)||0;return t*(r*60+o)}se();Ie();var Ws=new TextDecoder;function pc(e){if(e.length===0)return 0;let t=0;for(let n=0;n<e.length;n++)e[n]===`
|
|
197
197
|
`&&t++;return e[e.length-1]!==`
|
|
198
198
|
`&&t++,t}function cr(e,t,n){if(e===0)return"";let r=[];return r.push(`${e} file${e!==1?"s":""} changed`),(t>0||n===0)&&r.push(`${t} insertion${t!==1?"s":""}(+)`),(n>0||t===0)&&r.push(`${n} deletion${n!==1?"s":""}(-)`),` ${r.join(", ")}`}async function Gr(e,t,n){let r=[],o=[],s=[];for(let a of t)if(a.status==="added"&&a.newHash&&a.newMode){let c=await gt(e,a.newHash);pn(c)?r.push({path:a.path,sortKey:a.path,insertions:0,deletions:0,isBinary:!0,oldSize:0,newSize:c.byteLength}):r.push({path:a.path,sortKey:a.path,insertions:pc(Ws.decode(c)),deletions:0}),o.push({path:a.path,mode:a.newMode})}else if(a.status==="deleted"&&a.oldHash&&a.oldMode){let c=await gt(e,a.oldHash);pn(c)?r.push({path:a.path,sortKey:a.path,insertions:0,deletions:0,isBinary:!0,oldSize:c.byteLength,newSize:0}):r.push({path:a.path,sortKey:a.path,insertions:0,deletions:pc(Ws.decode(c))}),s.push({path:a.path,mode:a.oldMode})}else if(a.status==="modified"&&a.oldHash&&a.newHash){let c=await gt(e,a.oldHash),f=await gt(e,a.newHash);if(pn(c)||pn(f))r.push({path:a.path,sortKey:a.path,insertions:0,deletions:0,isBinary:!0,oldSize:c.byteLength,newSize:f.byteLength});else{let d=Lt(Ws.decode(c)),u=Lt(Ws.decode(f)),l=it(d,u),m=0,h=0;for(let p of l)p.type==="insert"?m++:p.type==="delete"&&h++;r.push({path:a.path,sortKey:a.path,insertions:m,deletions:h})}a.oldMode&&a.newMode&&a.oldMode!==a.newMode&&(s.push({path:a.path,mode:a.oldMode}),o.push({path:a.path,mode:a.newMode}))}for(let a of n){let c=Cn(a.oldPath,a.newPath),f=0,d=0;if(a.similarity<100&&a.oldHash&&a.newHash){let u=await re(e,a.oldHash),l=await re(e,a.newHash);if(!$e(u)&&!$e(l)){let m=Lt(u),h=Lt(l),p=it(m,h);for(let g of p)g.type==="insert"?f++:g.type==="delete"&&d++}}r.push({path:c,sortKey:a.newPath,insertions:f,deletions:d})}let i=[];for(let{path:a,mode:c}of o)i.push({sortKey:a,text:` create mode ${c} ${a}`});for(let{path:a,mode:c}of s)i.push({sortKey:a,text:` delete mode ${c} ${a}`});for(let a of n){let c=Cn(a.oldPath,a.newPath);i.push({sortKey:a.newPath,text:` rename ${c} (${a.similarity}%)`})}return i.sort((a,c)=>a.sortKey<c.sortKey?-1:a.sortKey>c.sortKey?1:0),{fileStats:r,modeLines:i.map(a=>a.text)}}async function Yt(e,t,n,r,o,s=!1,i=!1){let a=[];if((r.name!==o.name||r.email!==o.email)&&a.push(` Author: ${r.name} <${r.email}>`),s&&a.push(` Date: ${Vt(r.timestamp,r.timezone)}`),i)return a.join(`
|
|
199
199
|
`)+(a.length>0?`
|
|
@@ -206,7 +206,7 @@ The first bad commit could be any of:
|
|
|
206
206
|
`:`Merge branch '${t}' into ${n}
|
|
207
207
|
`}async function Ks(e,t,n){let r=await M(e,t),o=await M(e,n),s=z(t),i=z(n),a=`Updating ${s}..${i}
|
|
208
208
|
`;if(e.workTree){let f=await q(e),d=await va(e,r.tree,o.tree,f);if(!d.success){let u=d.errorOutput;return{stdout:a+u.stdout,stderr:u.stderr,exitCode:u.exitCode}}await ce(e,{version:2,entries:d.newEntries}),await Oe(e,d.worktreeOps)}await gn(e,n);let c=await Tn(e,r.tree,o.tree);return{stdout:`${a}Fast-forward
|
|
209
|
-
${c}`,stderr:"",exitCode:0}}se();Le();ue();function gc(e,t){e.command("branch",{description:"List, create, or delete branches",args:[B.string().name("name").describe("Branch name").optional(),B.string().name("newName").describe("New branch name (for -m) or start-point (for create)").optional()],options:{delete:H().alias("d").describe("Delete a branch"),forceDelete:H().alias("D").describe("Force delete a branch"),move:H().alias("m").describe("Rename a branch"),forceMove:H().alias("M").describe("Force rename a branch"),remotes:H().alias("r").describe("List remote-tracking branches"),all:H().alias("a").describe("List all branches"),setUpstreamTo:Q.string().alias("u").describe("Set upstream tracking branch"),verbose:H().alias("v").count().describe("Show hash and subject")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o,i=await Z(s),a=i?.type==="symbolic"?we(i.target):null,c=!!n.forceMove;if(n.move||c){let w,k;if(n.newName)w=n.name,k=n.newName;else if(n.name){if(!a)return O("not on any branch");w=a,k=n.name}else return O("branch name required");let b=`refs/heads/${w}`,E=`refs/heads/${k}`,x=await _(s,b);if(!x)return O(`no branch named '${w}'`);if(await Ht(s)&&(await lt(s))?.headName===b)return O(`branch ${b} is being rebased at ${s.workTree}`);let C=await _(s,E);if(C&&!c)return O(`a branch named '${k}' already exists`);C&&await le(s,E);let P=await ze(s,b);await V(s,E,x),await le(s,b),w===a&&await Fe(s,"HEAD",E),P.length>0&&await bn(s,E,P);let R=`Branch: renamed ${b} to ${E}`;if(await
|
|
209
|
+
${c}`,stderr:"",exitCode:0}}se();Le();ue();function gc(e,t){e.command("branch",{description:"List, create, or delete branches",args:[B.string().name("name").describe("Branch name").optional(),B.string().name("newName").describe("New branch name (for -m) or start-point (for create)").optional()],options:{delete:H().alias("d").describe("Delete a branch"),forceDelete:H().alias("D").describe("Force delete a branch"),move:H().alias("m").describe("Rename a branch"),forceMove:H().alias("M").describe("Force rename a branch"),remotes:H().alias("r").describe("List remote-tracking branches"),all:H().alias("a").describe("List all branches"),setUpstreamTo:Q.string().alias("u").describe("Set upstream tracking branch"),verbose:H().alias("v").count().describe("Show hash and subject")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o,i=await Z(s),a=i?.type==="symbolic"?we(i.target):null,c=!!n.forceMove;if(n.move||c){let w,k;if(n.newName)w=n.name,k=n.newName;else if(n.name){if(!a)return O("not on any branch");w=a,k=n.name}else return O("branch name required");let b=`refs/heads/${w}`,E=`refs/heads/${k}`,x=await _(s,b);if(!x)return O(`no branch named '${w}'`);if(await Ht(s)&&(await lt(s))?.headName===b)return O(`branch ${b} is being rebased at ${s.workTree}`);let C=await _(s,E);if(C&&!c)return O(`a branch named '${k}' already exists`);C&&await le(s,E);let P=await ze(s,b);await V(s,E,x),await le(s,b),w===a&&await Fe(s,"HEAD",E),P.length>0&&await bn(s,E,P);let R=`Branch: renamed ${b} to ${E}`;if(await te(s,r.env,E,x,x,R),w===a){let v=await _t(s,r.env);await Ue(s,"HEAD",{oldHash:x,newHash:J,...v,message:R}),await Ue(s,"HEAD",{oldHash:J,newHash:x,...v,message:R})}let y=await he(s),$=`branch "${w}"`;return y[$]&&(y[`branch "${k}"`]=y[$],delete y[$],await Ye(s,y)),{stdout:"",stderr:"",exitCode:0}}let f=n.forceDelete;if(n.delete||f){if(!n.name)return O("branch name required");let w=n.name===a;if(!w&&!a&&await Ht(s)&&(await lt(s))?.headName===`refs/heads/${n.name}`&&(w=!0),w)return N(`error: cannot delete branch '${n.name}' used by worktree at '${s.workTree}'
|
|
210
210
|
`);let k=`refs/heads/${n.name}`,b=await _(s,k);if(!b)return N(`error: branch '${n.name}' not found
|
|
211
211
|
`);let E="";if(!f){let x=await X(s),P=(await he(s))[`branch "${n.name}"`],R=P?.remote,y=P?.merge,$=null,v=null;if(R&&y&&($=y.replace(/^refs\/heads\//,`refs/remotes/${R}/`),v=await _(s,$)),v&&$){if(!(b===v||await cn(s,b,v))){let j=x!=null&&(b===x||await cn(s,b,x))?`warning: not deleting branch '${n.name}' that is not yet merged to
|
|
212
212
|
'${$}', even though it is merged to HEAD
|
|
@@ -220,15 +220,15 @@ hint: If you are sure you want to delete it, run 'git branch -D ${n.name}'
|
|
|
220
220
|
hint: Disable this message with "git config set advice.forceDeleteBranch false"
|
|
221
221
|
`)}return await le(s,k),{stdout:`Deleted branch ${n.name} (was ${z(b)}).
|
|
222
222
|
`,stderr:E,exitCode:0}}if(n.setUpstreamTo){let w=n.setUpstreamTo,k=n.name||a;if(!k)return O("could not set upstream of HEAD when it does not point to any branch.");if(!await _(s,`refs/heads/${k}`))return O(`branch '${k}' does not exist`);let E=w.indexOf("/");if(E<0)return O(`the requested upstream branch '${w}' does not exist`);let x=w.slice(0,E),C=w.slice(E+1);if(!await _(s,`refs/remotes/${w}`))return O(`the requested upstream branch '${w}' does not exist`);let R=await he(s),y=`branch "${k}"`;return R[y]||(R[y]={}),R[y].remote=x,R[y].merge=`refs/heads/${C}`,await Ye(s,R),{stdout:"",stderr:`branch '${k}' set up to track '${w}'.
|
|
223
|
-
`,exitCode:0}}if(n.name&&!n.remotes&&!n.all){let w=n.newName,k;if(w){let C=await Te(s,w,`not a valid object name: '${w}'`);if(S(C))return C;k=C.hash}else if(k=await X(s),!k)return O("Not a valid object name: 'HEAD'.");let b=`refs/heads/${n.name}`;if(await _(s,b))return O(`a branch named '${n.name}' already exists`);await V(s,b,k);let x=w??"HEAD";return await
|
|
223
|
+
`,exitCode:0}}if(n.name&&!n.remotes&&!n.all){let w=n.newName,k;if(w){let C=await Te(s,w,`not a valid object name: '${w}'`);if(S(C))return C;k=C.hash}else if(k=await X(s),!k)return O("Not a valid object name: 'HEAD'.");let b=`refs/heads/${n.name}`;if(await _(s,b))return O(`a branch named '${n.name}' already exists`);await V(s,b,k);let x=w??"HEAD";return await te(s,r.env,b,null,k,`branch: Created from ${x}`),{stdout:"",stderr:"",exitCode:0}}let d=n.verbose||0,u=!n.remotes||n.all,l=n.remotes||n.all,m=[];if(u&&!a){let w=await X(s);if(w){let k=await Ht(s),b;if(k){let E=await lt(s);if(E?.headName){let x=we(E.headName);if(x==="detached HEAD"){let C=await Sr(s);b=`(no branch, rebasing detached HEAD ${C?z(C):"(null)"})`}else b=`(no branch, rebasing ${x})`}else b="(no branch)"}else{let E=await Sr(s);E?b=`(HEAD detached ${w===E?"at":"from"} ${z(E)})`:b="(no branch)"}m.push({displayName:b,hash:w,isCurrent:!0,branchName:null})}}if(u){let w=await ge(s,"refs/heads");for(let k of w){let b=we(k.name);m.push({displayName:b,hash:k.hash,isCurrent:b===a,branchName:b})}}if(l){let w=await ge(s,"refs/remotes");for(let k of w){let b=k.name.replace("refs/remotes/","");m.push({displayName:n.all?`remotes/${b}`:b,hash:k.hash,isCurrent:!1,branchName:null})}}if(m.length===0)return{stdout:"",stderr:"",exitCode:0};if(d===0)return{stdout:`${m.map(k=>k.isCurrent?`* ${k.displayName}`:` ${k.displayName}`).join(`
|
|
224
224
|
`)}
|
|
225
225
|
`,stderr:"",exitCode:0};let h=d>=1?await he(s):null,p=Math.max(...m.map(w=>w.displayName.length)),g=[];for(let w of m){let k=w.isCurrent?"* ":" ",b=w.displayName.padEnd(p),E=z(w.hash),x="";try{let P=await M(s,w.hash);x=oe(P.message)}catch{}let C="";if(h&&w.branchName){let P=await on(s,h,w.branchName);if(P){let R=Za(P,d>=2);R&&(C=` ${R}`)}}g.push(`${k}${b} ${E}${C} ${x}`)}return{stdout:`${g.join(`
|
|
226
226
|
`)}
|
|
227
|
-
`,stderr:"",exitCode:0}}})}
|
|
227
|
+
`,stderr:"",exitCode:0}}})}ne();Xe();Ee();se();Le();ue();en();Je();function wc(e,t){e.command("checkout",{description:"Switch branches or restore working tree files",args:[B.string().name("target").describe("Branch name or path to checkout").optional()],options:{branch:H().alias("b").describe("Create and switch to a new branch"),forceBranch:H().alias("B").describe("Create/reset and switch to a new branch"),orphan:H().describe("Create a new orphan branch"),ours:H().describe("Checkout our version for unmerged files"),theirs:H().describe("Checkout their version for unmerged files")},handler:async(n,r,o)=>{let s=await U(r.fs,r.cwd,t);if(S(s))return s;let i=s,a=n.target;if(n.ours&&n.theirs)return O("--ours and --theirs are incompatible");if(o.passthrough.length>0){let u=ct(i,r.cwd),l=o.passthrough,m=null;if(a){if(n.ours||n.theirs)return O("cannot specify both a revision and --ours/--theirs");let h=await Te(i,a,`invalid reference: ${a}`);if(S(h))return h;m=h.commit.tree}return n.ours||n.theirs?Ls(i,l,u,n.theirs?3:2):js(i,l,u,m)}if(n.orphan)return n.branch?O("--orphan and -b are incompatible"):n.ours||n.theirs?O("--orphan and --ours/--theirs are incompatible"):a?ju(i,a,r.env,t):O("you must specify a branch to checkout");if(!a)return O("you must specify a branch to checkout");if(n.branch||n.forceBranch)return Lu(i,a,r.env,t,!!n.forceBranch);if(a==="-")return Mu(i,r.env,t);let c=`refs/heads/${a}`,f=await _(i,c);if(f)return bc(i,a,c,f,r.env,t);let d=await Be(i,a);if(d){let u=await Ne(i,d);return Gu(i,a,u,r.env,t)}if(i.workTree){let u=await q(i),l=ss(u,a);if(l)return await rt(i,{path:l.path,hash:l.hash,mode:l.mode}),{stdout:"",stderr:"",exitCode:0}}return N(`error: pathspec '${a}' did not match any file(s) known to git
|
|
228
228
|
`)}})}async function Mu(e,t,n){let r=await Ms(e);return r?bc(e,r.name,r.refName,r.hash,t,n):O("no previous branch")}async function ju(e,t,n,r){let o=`refs/heads/${t}`;if(await _(e,o))return O(`a branch named '${t}' already exists`);let i=await q(e),a=Pn(i);if(a)return a;let c=await X(e),f=null;c&&(f=(await M(e,c)).tree),await Fe(e,"HEAD",o),await dt(e);let d=await an(e);await r?.hooks?.emitPost("post-checkout",{prevHead:c,newHead:J,isBranchCheckout:!0});let u="";return f&&(u=await Kn(e,f,i)),{stdout:u,stderr:`Switched to a new branch '${t}'
|
|
229
|
-
${d}`,exitCode:0}}async function Lu(e,t,n,r,o=!1){if(r?.hooks){let p=await r.hooks.emitPre("pre-checkout",{target:t,mode:"create-branch"});if(p)return{stdout:"",stderr:p.message??"",exitCode:1}}let s=await Z(e),i=await X(e),a=`refs/heads/${t}`,c=await _(e,a);if(c&&!o)return O(`a branch named '${t}' already exists`);if(o){let p=await q(e),g=Pn(p);if(g)return g}i&&await V(e,a,i),await Fe(e,"HEAD",a),await dt(e);let f=await an(e),d=s?.type==="symbolic"?s.target.replace(/^refs\/heads\//,""):i??J;i&&await
|
|
229
|
+
${d}`,exitCode:0}}async function Lu(e,t,n,r,o=!1){if(r?.hooks){let p=await r.hooks.emitPre("pre-checkout",{target:t,mode:"create-branch"});if(p)return{stdout:"",stderr:p.message??"",exitCode:1}}let s=await Z(e),i=await X(e),a=`refs/heads/${t}`,c=await _(e,a);if(c&&!o)return O(`a branch named '${t}' already exists`);if(o){let p=await q(e),g=Pn(p);if(g)return g}i&&await V(e,a,i),await Fe(e,"HEAD",a),await dt(e);let f=await an(e),d=s?.type==="symbolic"?s.target.replace(/^refs\/heads\//,""):i??J;i&&(c?c!==i&&await te(e,n,a,c,i,"branch: Reset to HEAD"):await te(e,n,a,null,i,"branch: Created from HEAD")),await te(e,n,"HEAD",i,i??J,`checkout: moving from ${d} to ${t}`),await r?.hooks?.emitPost("post-checkout",{prevHead:i,newHead:i??J,isBranchCheckout:!0});let u="";if(o&&i){let p=await q(e),g=await M(e,i);u=await Kn(e,g.tree,p)}let l=await he(e),m=await on(e,l,t);m&&(u+=qn(m));let h=c?`Switched to and reset branch '${t}'
|
|
230
230
|
`:`Switched to a new branch '${t}'
|
|
231
|
-
`;return{stdout:u,stderr:`${h}${f}`,exitCode:0}}async function bc(e,t,n,r,o,s){if(s?.hooks){let i=await s.hooks.emitPre("pre-checkout",{target:t,mode:"switch"});if(i)return{stdout:"",stderr:i.message??"",exitCode:1}}return ir(e,t,n,r,o,s)}async function Gu(e,t,n,r,o){if(o?.hooks){let s=await o.hooks.emitPre("pre-checkout",{target:t,mode:"detach"});if(s)return{stdout:"",stderr:s.message??"",exitCode:1}}return Rn(e,n,r,o,{detachAdviceTarget:t})}
|
|
231
|
+
`;return{stdout:u,stderr:`${h}${f}`,exitCode:0}}async function bc(e,t,n,r,o,s){if(s?.hooks){let i=await s.hooks.emitPre("pre-checkout",{target:t,mode:"switch"});if(i)return{stdout:"",stderr:i.message??"",exitCode:1}}return ir(e,t,n,r,o,s)}async function Gu(e,t,n,r,o){if(o?.hooks){let s=await o.hooks.emitPre("pre-checkout",{target:t,mode:"detach"});if(s)return{stdout:"",stderr:s.message??"",exitCode:1}}return Rn(e,n,r,o,{detachAdviceTarget:t})}ne();Ee();ne();function ti(e,t){let n=e.length,r=t.length;if(n===0&&r===0)return[];if(n===0)return[{buffer1:[0,0],buffer2:[0,r]}];if(r===0)return[{buffer1:[0,n],buffer2:[0,0]}];let{changedOld:o,changedNew:s}=Qo(e,t);return yc(o,e,s,t),yc(s,t,o,e),Nu(o,n,s,r)}function Nu(e,t,n,r){let o=[],s=0,i=0;for(;s<t||i<r;){for(;s<t&&i<r&&!e[s]&&!n[i];)s++,i++;if(s>=t&&i>=r)break;let a=s,c=i;for(;s<t&&e[s];)s++;for(;i<r&&n[i];)i++;(s>a||i>c)&&o.push({buffer1:[a,s-a],buffer2:[c,i-c]})}return o}function yc(e,t,n,r){let o=t.length,s=r.length,i=0,a=0;for(;a<o&&e[a];)a++;let c=0,f=0;for(;f<s&&n[f];)f++;for(;;){if(a===i){if(a>=o)break;for(i=a+1,a=i;a<o&&e[a];)a++;if(f>=s)break;for(c=f+1,f=c;f<s&&n[f];)f++;continue}let d,u,l;do{for(d=a-i,l=-1;i>0&&a>0&&t[i-1]===t[a-1];){for(e[--i]=1,e[--a]=0;i>0&&e[i-1];)i--;if(c===0)break;for(f=c-1,c=f;c>0&&n[c-1];)c--}for(u=a,f>c&&(l=a);a<o&&t[i]===t[a];){for(e[i++]=0,e[a++]=1;a<o&&e[a];)a++;if(f>=s)break;for(c=f+1,f=c;f<s&&n[f];)f++;f>c&&(l=a)}}while(d!==a-i);if(a!==u&&l!==-1)for(;f===c&&!(i<=0||t[i-1]!==t[a-1]);){for(e[--i]=1,e[--a]=0;i>0&&e[i-1];)i--;if(c===0)break;for(f=c-1,c=f;c>0&&n[c-1];)c--}if(a>=o)break;for(i=a+1,a=i;a<o&&e[a];)a++;if(f>=s)break;for(c=f+1,f=c;f<s&&n[f];)f++}}function _u(e,t,n){let r=[];for(let c of ti(t,e))r.push({ab:"a",oStart:c.buffer1[0],oLength:c.buffer1[1],abStart:c.buffer2[0],abLength:c.buffer2[1]});for(let c of ti(t,n))r.push({ab:"b",oStart:c.buffer1[0],oLength:c.buffer1[1],abStart:c.buffer2[0],abLength:c.buffer2[1]});r.sort((c,f)=>c.oStart-f.oStart);let o=[],s=0;function i(c){c>s&&(o.push({stable:!0,buffer:"o",bufferStart:s,bufferLength:c-s,content:t.slice(s,c)}),s=c)}let a=0;for(;a<r.length;){let c=r[a++],f=c.oStart,d=c.oStart+c.oLength,u=[c];for(i(f);a<r.length;){let l=r[a];if(l.oStart>d)break;d=Math.max(d,l.oStart+l.oLength),u.push(l),a++}if(u.length===1){if(c.abLength>0){let l=c.ab==="a"?e:n;o.push({stable:!0,buffer:c.ab,bufferStart:c.abStart,bufferLength:c.abLength,content:l.slice(c.abStart,c.abStart+c.abLength)})}}else{let l={a:{abMin:e.length,abMax:-1,oMin:t.length,oMax:-1},b:{abMin:n.length,abMax:-1,oMin:t.length,oMax:-1}};for(let w of u){let k=w.oStart,b=k+w.oLength,E=w.abStart,x=E+w.abLength,C=l[w.ab];C.abMin=Math.min(E,C.abMin),C.abMax=Math.max(x,C.abMax),C.oMin=Math.min(k,C.oMin),C.oMax=Math.max(b,C.oMax)}let m=l.a.abMin+(f-l.a.oMin),h=l.a.abMax+(d-l.a.oMax),p=l.b.abMin+(f-l.b.oMin),g=l.b.abMax+(d-l.b.oMax);o.push({stable:!1,a:e.slice(m,h),o:t.slice(f,d),b:n.slice(p,g)})}s=d}return i(t.length),o}function Fu(e,t,n,r){let o=r?.excludeFalseConflicts??!0,s=_u(e,t,n),i=[],a=[];function c(){a.length&&(i.push({type:"ok",lines:a}),a=[])}for(let f of s)f.stable?a.push(...f.content):o&&Ec(f.a,f.b)?a.push(...f.a):(c(),i.push({type:"conflict",a:f.a,o:f.o,b:f.b}));return c(),Wu(Uu(i))}function _r(e,t,n,r){let o=r?.markerSize??7,s=`${"<".repeat(o)}${r?.a?` ${r.a}`:""}`,i="=".repeat(o),a=`${">".repeat(o)}${r?.b?` ${r.b}`:""}`,c=Fu(e,t,n),f=!1,d=[];for(let u of c)u.type==="ok"?d.push(...u.lines):(f=!0,d.push(s,...u.a,i,...u.b,a));return{conflict:f,result:d}}function Uu(e){let t=[];for(let n of e)n.type==="ok"?t.push(n):t.push(...Bu(n));return t}function Bu(e){let{a:t,b:n}=e;if(t.length===0||n.length===0)return[e];if(Ec(t,n))return[e];let r=ti(t,n);if(r.length===0)return[{type:"ok",lines:t}];let o=[],s=0;for(let a of r){let c=a.buffer1[0];c-s>0&&o.push({type:"ok",lines:t.slice(s,c)});let d=c+a.buffer1[1],u=a.buffer2[0]+a.buffer2[1];o.push({type:"conflict",a:t.slice(c,d),o:[],b:n.slice(a.buffer2[0],u)}),s=d}return t.length-s>0&&o.push({type:"ok",lines:t.slice(s)}),o.length===1&&o[0].type==="conflict"?[e]:o}function Wu(e){if(e.length<3)return e;let t=[e[0]];for(let r=1;r<e.length;r++){let o=t[t.length-1],s=e[r];o.type==="ok"&&s.type==="ok"?o.lines=[...o.lines,...s.lines]:t.push(s)}if(t.length<3)return t;let n=[t[0]];for(let r=1;r<t.length;r++){let o=n[n.length-1],s=t[r];if(o.type==="conflict"&&s.type==="ok"&&s.lines.length<=3&&r+1<t.length&&t[r+1].type==="conflict"){let i=t[r+1],a=o;a.a=[...o.a,...s.lines,...i.a],a.b=[...o.b,...s.lines,...i.b],a.o=[...o.o,...s.lines,...i.o],r++}else n.push(s)}return n}function zn(e,t,n,r){let o=_r(Et(e),Et(t),Et(n),{a:r.a,b:r.b,markerSize:r.markerSize}),i=(o.result[o.result.length-1]??"").endsWith("\0"),a=o.result.map(ni);return(a[a.length-1]??"").startsWith(">>>>>>>")||!i?`${a.join(`
|
|
232
232
|
`)}
|
|
233
233
|
`:a.join(`
|
|
234
234
|
`)}function Et(e){if(e==="")return[];let t=e.split(`
|
|
@@ -299,14 +299,14 @@ hint: To abort and get back to the state before "git cherry-pick",
|
|
|
299
299
|
hint: run "git cherry-pick --abort".
|
|
300
300
|
hint: Disable this message with "git config set advice.mergeConflict false"
|
|
301
301
|
`,exitCode:1})}let x=E.mergedTreeHash;if(n.noCommit)return{stdout:"",stderr:"",exitCode:0};let C=await Ve(s,r.env);if(S(C))return C;let P=await ft(s,x,[d],f.author,C,h);await jt(s),await Tt(s);let R=await Z(s),y=h.split(`
|
|
302
|
-
`)[0]??"",$=R?.type==="symbolic"?R.target:"HEAD";await
|
|
302
|
+
`)[0]??"",$=R?.type==="symbolic"?R.target:"HEAD";await te(s,r.env,$,d,P,`cherry-pick: ${y}`,R?.type==="symbolic");let v=R?.type==="symbolic"?we(R.target):"detached HEAD",G=l.tree,L=await Yt(s,G,x,f.author,C,!0),Y=It(v,P,h),j=b.messages.length>0?`${b.messages.join(`
|
|
303
303
|
`)}
|
|
304
304
|
`:"";return await t?.hooks?.emitPost("post-cherry-pick",{mode:"pick",commitHash:P,hadConflicts:!1}),{stdout:`${j}${Y}
|
|
305
305
|
${L}`,stderr:"",exitCode:0}}})}async function Qu(e,t){if(!await _(e,"CHERRY_PICK_HEAD"))return N(`error: no cherry-pick in progress
|
|
306
306
|
fatal: cherry-pick failed
|
|
307
307
|
`,128);let r=await X(e);if(!r)return O("unable to resolve HEAD");let o=await M(e,r),s=await q(e),i=await Ps(e,o.tree,s,r);if(!i.success){let a=i.errorOutput;return{...a,stderr:a.stderr+`error: failed to skip the commit
|
|
308
308
|
fatal: cherry-pick failed
|
|
309
|
-
`}}return await ce(e,{version:2,entries:i.newEntries}),await Oe(e,i.worktreeOps),await
|
|
309
|
+
`}}return await ce(e,{version:2,entries:i.newEntries}),await Oe(e,i.worktreeOps),await te(e,t,"HEAD",r,r,`reset: moving to ${r}`),await jt(e),{stdout:"",stderr:"",exitCode:0}}async function em(e,t){return await _(e,"CHERRY_PICK_HEAD")?xn(e,t,{operationRef:"CHERRY_PICK_HEAD",noOpError:N(`error: no cherry-pick or revert in progress
|
|
310
310
|
fatal: cherry-pick failed
|
|
311
311
|
`,128),operationName:"cherry-pick",clearState:jt,origHeadAsTargetRev:!0}):await _(e,"REVERT_HEAD")?xn(e,t,{operationRef:"REVERT_HEAD",noOpError:N(`error: no cherry-pick or revert in progress
|
|
312
312
|
fatal: cherry-pick failed
|
|
@@ -314,17 +314,17 @@ fatal: cherry-pick failed
|
|
|
314
314
|
fatal: cherry-pick failed
|
|
315
315
|
`,128)}async function tm(e,t){let n=await _(e,"CHERRY_PICK_HEAD");if(!n)return N(`error: no cherry-pick or revert in progress
|
|
316
316
|
fatal: cherry-pick failed
|
|
317
|
-
`,128);let r=await q(e),o=sn(r,"Committing");if(o)return o;let s=await M(e,n),i=await Ce(e,"MERGE_MSG");i||(i=s.message);let a=ve(r),c=await Ae(e,a),f=await Ke(e);if(S(f))return f;let u=(await M(e,f)).tree,l=await Ve(e,t);if(S(l))return l;let m=Ot(i),h=await ft(e,c,[f],s.author,l,m);await jt(e),await Tt(e);let p=await Z(e),g=oe(m),w=p?.type==="symbolic"?p.target:"HEAD";await
|
|
317
|
+
`,128);let r=await q(e),o=sn(r,"Committing");if(o)return o;let s=await M(e,n),i=await Ce(e,"MERGE_MSG");i||(i=s.message);let a=ve(r),c=await Ae(e,a),f=await Ke(e);if(S(f))return f;let u=(await M(e,f)).tree,l=await Ve(e,t);if(S(l))return l;let m=Ot(i),h=await ft(e,c,[f],s.author,l,m);await jt(e),await Tt(e);let p=await Z(e),g=oe(m),w=p?.type==="symbolic"?p.target:"HEAD";await te(e,t,w,f,h,`commit (cherry-pick): ${g}`,p?.type==="symbolic");let k=p?.type==="symbolic"?we(p.target):"detached HEAD",b=await Yt(e,u,c,s.author,l,!0);return{stdout:`${It(k,h,i)}
|
|
318
318
|
${b}`,stderr:"",exitCode:0}}function nm(e,t){let n=`(cherry picked from commit ${t})`,r=e.replace(/\n+$/,""),o=r.lastIndexOf(`
|
|
319
319
|
`),s=o===-1?r:r.slice(o+1);return/^\(cherry picked from commit [0-9a-f]+\)$/.test(s)?`${r}
|
|
320
320
|
${n}
|
|
321
321
|
`:`${r}
|
|
322
322
|
|
|
323
323
|
${n}
|
|
324
|
-
`}
|
|
324
|
+
`}ne();Xe();Es();Ee();de();function Ac(e,t){e.command("clean",{description:"Remove untracked files from the working tree",args:[B.string().name("pathspec").describe("Pathspec to limit which files are removed").optional().variadic()],options:{force:H().alias("f").describe("Required to actually remove files"),"dry-run":H().alias("n").describe("Don't actually remove anything, just show what would be done"),directories:H().alias("d").describe("Also remove untracked directories"),removeIgnored:H().alias("x").describe("Remove ignored files as well"),onlyIgnored:H().alias("X").describe("Remove only ignored files"),exclude:Q.string().alias("e").describe("Additional exclude pattern")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o,i=qe(s);if(i)return i;let a=s.workTree,c=n["dry-run"],f=n.force,d=n.directories,u=n.removeIgnored,l=n.onlyIgnored;if(t?.hooks){let P=await t.hooks.emitPre("pre-clean",{dryRun:c,force:f,removeDirs:d,removeIgnored:u,onlyIgnored:l});if(P)return{stdout:"",stderr:P.message??"",exitCode:1}}if(!f&&!c&&await Dt(s,"clean.requireForce")!=="false")return O("clean.requireForce defaults to true and neither -i, -n, nor -f given; refusing to clean");let m=await q(s),h=new Set(m.entries.map(P=>P.path)),p=ct(s,r.cwd),g=n.pathspec,w=g.length>0?g.map(P=>Ge(P,p)):null,k=n.exclude?[n.exclude]:[],b=await Sc(s,a,"",{trackedPaths:h,removeDirs:d,removeIgnored:u,onlyIgnored:l,extraExcludes:k}),E;w?E=b.filter(P=>be(w,P.path)):E=b,E.sort((P,R)=>P.path<R.path?-1:P.path>R.path?1:0);let x=[];if(c)for(let P of E){let R=P.isDir?`Would remove ${P.path}/`:`Would remove ${P.path}`;x.push(R)}else for(let P of E){let R=T(a,P.path);P.isDir?(await r.fs.rm(R,{recursive:!0}),x.push(`Removing ${P.path}/`)):(await r.fs.rm(R),x.push(`Removing ${P.path}`))}let C=x.length>0?`${x.join(`
|
|
325
325
|
`)}
|
|
326
326
|
`:"";return await t?.hooks?.emitPost("post-clean",{removed:E.map(P=>P.path),dryRun:c}),{stdout:C,stderr:"",exitCode:0}}})}async function Sc(e,t,n,r){let o=[],s=!r.removeIgnored,i=null;if(s||r.onlyIgnored){i=r._ignore??await tr(e);let c=T(t,".gitignore");try{let f=await e.fs.readFile(c);i=Nn(i,f,n,c)}catch{}if(!r._ignore&&r.extraExcludes.length>0){let f=r.extraExcludes.join(`
|
|
327
|
-
`),d=Tr(f,"","<cli>");i={...i,dirPatterns:[d,...i.dirPatterns]}}}let a=await e.fs.readdir(t);for(let c of a){if(n===""&&c===".git")continue;let f=T(t,c),d=n?`${n}/${c}`:c,u=await e.fs.stat(f);if(u.isDirectory){let l=i&&Wt(i,d,!0)==="ignored",m=rm(r.trackedPaths,d),h=()=>Sc(e,f,d,{...r,_ignore:i??void 0});if(r.onlyIgnored){if(l&&!m){r.removeDirs&&o.push({path:d,isDir:!0});continue}let p=await h();!m&&r.removeDirs?p.length>0&&o.push({path:d,isDir:!0}):o.push(...p)}else if(m){let p=await h();o.push(...p)}else if(!(l&&s)){if(r.removeDirs)if(r.removeIgnored)o.push({path:d,isDir:!0});else{let p=await h(),g=await e.fs.readdir(f);(p.length>0||g.length===0)&&o.push({path:d,isDir:!0})}}}else if(u.isFile){if(r.trackedPaths.has(d))continue;let l=i&&Wt(i,d,!1)==="ignored";r.onlyIgnored?l&&o.push({path:d,isDir:!1}):l&&s||o.push({path:d,isDir:!1})}}return o}function rm(e,t){let n=`${t}/`;for(let r of e)if(r.startsWith(n))return!0;return!1}
|
|
327
|
+
`),d=Tr(f,"","<cli>");i={...i,dirPatterns:[d,...i.dirPatterns]}}}let a=await e.fs.readdir(t);for(let c of a){if(n===""&&c===".git")continue;let f=T(t,c),d=n?`${n}/${c}`:c,u=await e.fs.stat(f);if(u.isDirectory){let l=i&&Wt(i,d,!0)==="ignored",m=rm(r.trackedPaths,d),h=()=>Sc(e,f,d,{...r,_ignore:i??void 0});if(r.onlyIgnored){if(l&&!m){r.removeDirs&&o.push({path:d,isDir:!0});continue}let p=await h();!m&&r.removeDirs?p.length>0&&o.push({path:d,isDir:!0}):o.push(...p)}else if(m){let p=await h();o.push(...p)}else if(!(l&&s)){if(r.removeDirs)if(r.removeIgnored)o.push({path:d,isDir:!0});else{let p=await h(),g=await e.fs.readdir(f);(p.length>0||g.length===0)&&o.push({path:d,isDir:!0})}}}else if(u.isFile){if(r.trackedPaths.has(d))continue;let l=i&&Wt(i,d,!1)==="ignored";r.onlyIgnored?l&&o.push({path:d,isDir:!1}):l&&s||o.push({path:d,isDir:!1})}}return o}function rm(e,t){let n=`${t}/`;for(let r of e)if(r.startsWith(n))return!0;return!1}ne();Xe();ln();Ee();se();de();Le();ue();wn();Xe();wn();at();se();yr();ue();se();Jt();Cr();gs();async function Vs(e,t,n){return Dc(e,t,n,!1)}async function Ys(e,t,n){return Dc(e,t,n,!0)}async function Dc(e,t,n,r){let o=new Set;for(let a of n)await Br(e,a,o);let s=[],i=new Set;for(let a of t)await Wr(e,a,o,i,s,r);return s}async function Br(e,t,n){if(n.has(t)||(n.add(t),!await hn(e,t)))return;let r=await pe(e,t);switch(r.type){case"commit":{let o=Ut(r.content);await Br(e,o.tree,n);for(let s of o.parents)await Br(e,s,n);break}case"tree":{let o=En(r.content);for(let s of o.entries)await Br(e,s.hash,n);break}case"tag":{let o=Qt(r.content);await Br(e,o.object,n);break}case"blob":break}}async function Wr(e,t,n,r,o,s){if(r.has(t)||n.has(t))return;r.add(t);let i=await pe(e,t);switch(o.push(s?{hash:t,type:i.type,content:i.content}:{hash:t,type:i.type}),i.type){case"commit":{let a=Ut(i.content);await Wr(e,a.tree,n,r,o,s);for(let c of a.parents)await Wr(e,c,n,r,o,s);break}case"tree":{let a=En(i.content);for(let c of a.entries)await Wr(e,c.hash,n,r,o,s);break}case"tag":{let a=Qt(i.content);await Wr(e,a.object,n,r,o,s);break}case"blob":break}}var sm=new TextEncoder,Xs=new TextDecoder,Mc=65520,om=new Uint8Array([48,48,48,48]);function Vn(e){let t=typeof e=="string"?sm.encode(e):e,n=4+t.byteLength;if(n>Mc)throw new Error(`pkt-line too long: ${n} bytes (max ${Mc})`);let r=n.toString(16).padStart(4,"0"),o=new Uint8Array(n);return o[0]=r.charCodeAt(0),o[1]=r.charCodeAt(1),o[2]=r.charCodeAt(2),o[3]=r.charCodeAt(3),o.set(t,4),o}function ii(){return om.slice()}function Zs(...e){let t=0;for(let o of e)t+=o.byteLength;let n=new Uint8Array(t),r=0;for(let o of e)n.set(o,r),r+=o.byteLength;return n}function dr(e){let t=[],n=0;for(;n<e.byteLength;){if(n+4>e.byteLength)throw new Error("Truncated pkt-line header");let r=Xs.decode(e.subarray(n,n+4)),o=parseInt(r,16);if(Number.isNaN(o))throw new Error(`Invalid pkt-line length: ${r}`);if(o===0){t.push({type:"flush"}),n+=4;continue}if(o<4)throw new Error(`Invalid pkt-line length: ${o}`);if(n+o>e.byteLength)throw new Error(`Truncated pkt-line: need ${o} bytes at offset ${n}, have ${e.byteLength-n}`);t.push({type:"data",data:e.subarray(n+4,n+o)}),n+=o}return t}function Js(e){if(e.type==="flush")return"";let t=Xs.decode(e.data);return t.endsWith(`
|
|
328
328
|
`)?t.slice(0,-1):t}var im=1,am=2,cm=3;function ai(e){let t=[],n=[],r=[],o=0;for(let a of e){if(a.type==="flush"||a.data.byteLength===0)continue;let c=a.data[0];if(c===void 0)continue;let f=a.data.subarray(1);switch(c){case im:t.push(f),o+=f.byteLength;break;case am:n.push(Xs.decode(f));break;case cm:r.push(Xs.decode(f));break;default:break}}let s=new Uint8Array(o),i=0;for(let a of t)s.set(a,i),i+=a.byteLength;return{packData:s,progress:n,errors:r}}at();function ci(e){return e?e.type==="bearer"?{Authorization:`Bearer ${e.token}`}:{Authorization:`Basic ${btoa(`${e.username}:${e.password}`)}`}:{}}async function fi(e,t,n,r=globalThis.fetch){let o=e.replace(/\/+$/,""),s=await r(`${o}/info/refs?service=${t}`,{headers:{...ci(n),"User-Agent":"just-git/1.0"}});if(!s.ok)throw new Error(`HTTP ${s.status} discovering refs at ${o}`);let i=s.headers.get("content-type")??"",a=`application/x-${t}-advertisement`,c=new Uint8Array(await s.arrayBuffer());if(!i.startsWith(a)){let d=new TextDecoder().decode(c.subarray(0,5));if(!/^[0-9a-f]{4}#/.test(d))throw new Error(`Server does not support smart HTTP (Content-Type: ${i})`)}let f=dr(c);return fm(f,t)}function fm(e,t){let n=0,r=e[n];r?.type==="data"&&Js(r)===`# service=${t}`&&n++,e[n]?.type==="flush"&&n++;let o=[],s=[],i=new Map;for(;n<e.length;n++){let a=e[n];if(!a||a.type==="flush")break;let c=a.data,f=c.indexOf(0),d;if(f!==-1){d=new TextDecoder().decode(c.subarray(0,f)),s=new TextDecoder().decode(c.subarray(f+1)).replace(/\n$/,"").split(" ").filter(Boolean);for(let p of s)if(p.startsWith("symref=")){let g=p.slice(7),w=g.indexOf(":");w!==-1&&i.set(g.slice(0,w),g.slice(w+1))}}else d=new TextDecoder().decode(c).replace(/\n$/,"");let u=d.indexOf(" ");if(u===-1)continue;let l=d.slice(0,u),m=d.slice(u+1);if(!(l===J&&m==="capabilities^{}")){if(m.endsWith("^{}")){let h=m.slice(0,-3),p=o.find(g=>g.name===h);p&&(p.peeledHash=l);continue}o.push({name:m,hash:l})}}return{refs:o,capabilities:s,symrefs:i}}var dm=["multi_ack_detailed","no-done","side-band-64k","ofs-delta","thin-pack","include-tag"];async function jc(e,t,n,r,o,s=globalThis.fetch){if(t.length===0)throw new Error("fetchPack requires at least one want");let i=Gc(r,dm),a=[];a.push(Vn(`want ${t[0]} ${i.join(" ")}
|
|
329
329
|
`));for(let l=1;l<t.length;l++)a.push(Vn(`want ${t[l]}
|
|
330
330
|
`));a.push(ii());for(let l of n)a.push(Vn(`have ${l}
|
|
@@ -335,7 +335,7 @@ ${n}
|
|
|
335
335
|
warning: You appear to have cloned an empty repository.
|
|
336
336
|
`,exitCode:0};let g=[],w=new Set;for(let y of p)y.name!=="HEAD"&&(w.has(y.hash)||(w.add(y.hash),g.push(y.hash)));g.length>0&&await h.fetch(g,[]);let k=p.find(y=>y.name==="HEAD"),b=null,E=null,x=await _t(l,r.env),C=`clone: from ${i}`,P=h.headTarget;P?.startsWith("refs/heads/")&&p.some(y=>y.name===P)&&(b=P.slice(11),E=p.find(y=>y.name===P)?.hash??null);for(let y of p)if(y.name!=="HEAD"){if(y.name.startsWith("refs/heads/")){let $=y.name.slice(11),v=`refs/remotes/origin/${$}`;await V(l,v,y.hash),await Ue(l,v,{oldHash:J,newHash:y.hash,name:x.name,email:x.email,timestamp:x.timestamp,tz:x.tz,message:C}),!b&&k&&y.hash===k.hash&&(b=$,E=y.hash)}y.name.startsWith("refs/tags/")&&await V(l,y.name,y.hash)}if(a){let y=p.find($=>$.name===`refs/heads/${a}`);if(!y)return O(`Remote branch '${a}' not found in upstream origin`);b=a,E=y.hash}if(!b){let y=p.find($=>$.name.startsWith("refs/heads/"));y&&(b=y.name.slice(11),E=y.hash)}if(n.bare)return b&&await Fe(l,"HEAD",`refs/heads/${b}`),await t?.hooks?.emitPost("post-clone",{repository:o,targetPath:f,bare:n.bare,branch:b}),{stdout:"",stderr:`Cloning into bare repository '${c}'...
|
|
337
337
|
`,exitCode:0};if(b&&await Fe(l,"refs/remotes/origin/HEAD",`refs/remotes/origin/${b}`),b&&E){await V(l,`refs/heads/${b}`,E),await Fe(l,"HEAD",`refs/heads/${b}`);let y={oldHash:J,newHash:E,name:x.name,email:x.email,timestamp:x.timestamp,tz:x.tz,message:C};await Ue(l,`refs/heads/${b}`,y),await Ue(l,"HEAD",y);let $=await he(l);$[`branch "${b}"`]={remote:"origin",merge:`refs/heads/${b}`},await Ye(l,$);let v=await M(l,E);await Ha(l,v.tree);let G=await We(l,v.tree),L=os(G.map(Y=>({path:Y.path,mode:parseInt(Y.mode,8),hash:Y.hash,stage:0,stat:xe()})));await ce(l,L)}let R={stdout:"",stderr:`Cloning into '${c}'...
|
|
338
|
-
`,exitCode:0};return await t?.hooks?.emitPost("post-clone",{repository:o,targetPath:f,bare:n.bare,branch:b}),R}})}
|
|
338
|
+
`,exitCode:0};return await t?.hooks?.emitPost("post-clone",{repository:o,targetPath:f,bare:n.bare,branch:b}),R}})}ne();Ee();se();Jt();de();Le();ue();Ie();Je();function Wc(e,t){e.command("commit",{description:"Record changes to the repository",options:{message:Q.string().alias("m").describe("Commit message"),file:Q.string().alias("F").describe("Read commit message from file ('-' for stdin)"),allowEmpty:H().describe("Allow creating an empty commit"),amend:H().describe("Amend the previous commit"),noEdit:H().describe("Use the previous commit message without editing"),all:H().alias("a").describe("Auto-stage modified and deleted tracked files")},handler:async(n,r)=>{if(n.message!==void 0&&n.file!==void 0)return O("options '-m' and '-F' cannot be used together");let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o,i=await q(s);if(n.all){let ee=qe(s);if(ee)return ee;let me=await Rt(s,i);for(let Se of me)Se.status==="modified"?i=(await nn(s,i,Se.path)).index:Se.status==="deleted"&&(i=nt(i,Se.path));let je=new Set(ve(i).map(Se=>Se.path)),Xt=new Set(i.entries.filter(Se=>Se.stage>0&&!je.has(Se.path)).map(Se=>Se.path));for(let Se of Xt){let Xr=T(s.workTree,Se);await r.fs.exists(Xr)?i=(await nn(s,i,Se)).index:i=nt(i,Se)}}let a=await _(s,"MERGE_HEAD"),c=await _(s,"CHERRY_PICK_HEAD"),f=await _(s,"REVERT_HEAD"),u=await Ht(s)?await _(s,"REBASE_HEAD"):null,l=n.amend,m=await X(s);if(l){if(!m)return O("You have nothing yet to amend.");if(a)return O("You are in the middle of a merge -- cannot amend.");if(c)return O("You are in the middle of a cherry-pick -- cannot amend.")}if(Pt(i)){let ee=new Set,me=[];for(let je of i.entries)je.stage>0&&!ee.has(je.path)&&(ee.add(je.path),me.push(`U ${je.path}`));return me.sort(),{stdout:me.length>0?`${me.join(`
|
|
339
339
|
`)}
|
|
340
340
|
`:"",stderr:`error: Committing is not possible because you have unmerged files.
|
|
341
341
|
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
|
|
@@ -352,15 +352,15 @@ If you wish to commit it anyway, use:
|
|
|
352
352
|
git commit --allow-empty
|
|
353
353
|
|
|
354
354
|
Otherwise, please use 'git cherry-pick --skip'
|
|
355
|
-
`,exitCode:1}:{stdout:await et(s,{fromCommit:!0,index:i}),stderr:"",exitCode:1}}}let x=await Kt(s,r.env);if(S(x))return x;let C=await Ve(s,r.env);if(S(C))return C;l&&h&&(x.name=h.author.name,x.email=h.author.email,x.timestamp=h.author.timestamp,x.timezone=h.author.timezone),c&&(x=(await M(s,c)).author);let P=Ot(p);if(t?.hooks){let ee={message:P},me=await t.hooks.emitPre("commit-msg",ee);if(me)return N(me.message??"");P=ee.message}let R;l&&h?R=[...h.parents]:(R=m?[m]:[],a&&R.push(a));let y=Bt({type:"commit",tree:w,parents:R,author:x,committer:C,message:P}),$=await Re(s,"commit",y);await ce(s,i);let v=await Z(s);v&&v.type==="symbolic"?await V(s,v.target,$):await V(s,"HEAD",$);let G=oe(P),L;l?L="commit (amend)":a?L="commit (merge)":c?L="commit (cherry-pick)":m?L="commit":L="commit (initial)";let Y=`${L}: ${G}`,j=v?.type==="symbolic"?v.target:"HEAD";await
|
|
356
|
-
${K}`,stderr:"",exitCode:0}}})}
|
|
355
|
+
`,exitCode:1}:{stdout:await et(s,{fromCommit:!0,index:i}),stderr:"",exitCode:1}}}let x=await Kt(s,r.env);if(S(x))return x;let C=await Ve(s,r.env);if(S(C))return C;l&&h&&(x.name=h.author.name,x.email=h.author.email,x.timestamp=h.author.timestamp,x.timezone=h.author.timezone),c&&(x=(await M(s,c)).author);let P=Ot(p);if(t?.hooks){let ee={message:P},me=await t.hooks.emitPre("commit-msg",ee);if(me)return N(me.message??"");P=ee.message}let R;l&&h?R=[...h.parents]:(R=m?[m]:[],a&&R.push(a));let y=Bt({type:"commit",tree:w,parents:R,author:x,committer:C,message:P}),$=await Re(s,"commit",y);await ce(s,i);let v=await Z(s);v&&v.type==="symbolic"?await V(s,v.target,$):await V(s,"HEAD",$);let G=oe(P),L;l?L="commit (amend)":a?L="commit (merge)":c?L="commit (cherry-pick)":m?L="commit":L="commit (initial)";let Y=`${L}: ${G}`,j=v?.type==="symbolic"?v.target:"HEAD";await te(s,r.env,j,m,$,Y,v?.type==="symbolic"),a&&await Ar(s),c&&await jt(s),f&&await Tt(s),u&&await Me(s,"MERGE_MSG"),await t?.hooks?.emitPost("post-commit",{hash:$,message:P,branch:v?.type==="symbolic"?we(v.target):null,parents:R,author:x});let I=v?.type==="symbolic"?v.target:null,A=I?we(I):"detached HEAD",W;if(l&&h){let ee=h.parents[0];W=ee?(await M(s,ee)).tree:null}else W=m?(await M(s,m)).tree:null;let F=x.timestamp!==C.timestamp||x.timezone!==C.timezone,D=R.length>1,K=await Yt(s,W,w,x,C,F,D);return{stdout:`${It(A,$,p,R.length===0&&!l)}
|
|
356
|
+
${K}`,stderr:"",exitCode:0}}})}ne();Xe();function zr(e){let t=e.split(".");return t.length===2||t.length===3}function wm(e){let t=[];for(let[n,r]of Object.entries(e)){let o=n.match(/^(\S+)\s+"(.+)"$/);for(let[s,i]of Object.entries(r)){let a=o?`${o[1]}.${o[2]}.${s}`:`${n}.${s}`;t.push(`${a}=${i}`)}}return t}function Vc(e,t){e.command("config",{description:"Get and set repository options",args:[B.string().name("positionals").variadic().optional()],options:{list:H().alias("l").describe("List all config entries"),unset:H().describe("Remove a config key")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o,i=n.positionals,a=i[0];if(n.list)return zc(await he(s));if(n.unset){let f=a;return f?zr(f)?Kc(s,f):N(`error: invalid key: ${f}`,2):N("error: missing key",2)}if(a==="list")return zc(await he(s));if(a==="get"){let f=i[1];return f?zr(f)?qc(s,f):N(`error: invalid key: ${f}`,2):N("error: missing key",2)}if(a==="set"){let f=i[1],d=i[2];return!f||d===void 0?N("error: missing key and/or value",2):zr(f)?(await bo(s,f,d),{stdout:"",stderr:"",exitCode:0}):N(`error: invalid key: ${f}`,2)}if(a==="unset"){let f=i[1];return f?zr(f)?Kc(s,f):N(`error: invalid key: ${f}`,2):N("error: missing key",2)}if(!a)return N("usage: git config [get|set|unset|list] [<key>] [<value>]",2);if(!zr(a))return N(`error: invalid key: ${a}`,2);let c=i[1];return c!==void 0?(await bo(s,a,c),{stdout:"",stderr:"",exitCode:0}):qc(s,a)}})}async function qc(e,t){let n=await Dt(e,t);return n===void 0?N(""):{stdout:`${n}
|
|
357
357
|
`,stderr:"",exitCode:0}}async function Kc(e,t){return await Gi(e,t)?{stdout:"",stderr:"",exitCode:0}:N("",5)}function zc(e){let t=wm(e);return{stdout:t.length>0?`${t.join(`
|
|
358
358
|
`)}
|
|
359
|
-
`:"",stderr:"",exitCode:0}}
|
|
359
|
+
`:"",stderr:"",exitCode:0}}ne();function Qs(e){let{path:t,parentHashes:n,parentModes:r,resultHash:o,resultMode:s}=e,i=[];i.push(`diff --cc ${t}`);let a=n.map(k=>k?z(k):"0000000"),c=o?z(o):"0000000";i.push(`index ${a.join(",")}..${c}`);let f=e.resultContent.length>0,d=n.every(k=>k===null),u=!f&&n.some(k=>k!==null);if(d&&s)i.push(`new file mode ${s}`);else if(u){let k=r.map(b=>b||"000000").join(",");i.push(`deleted file mode ${k}`)}else{let k=r.map(x=>x||"000000"),b=s||"000000";k.some(x=>x!==b)&&i.push(`mode ${k.join(",")}..${b}`)}let l=n.some(k=>k!==null);if(i.push(l?`--- a/${t}`:"--- /dev/null"),i.push(f?`+++ b/${t}`:"+++ /dev/null"),u||d)return`${i.join(`
|
|
360
360
|
`)}
|
|
361
361
|
`;let m=e.parentContents.map(k=>k.length>0?vt(k):[]),h=e.resultContent.length>0?vt(e.resultContent):[],p=m.map(k=>it(k,h)),g=bm(m,h,p),w=Em(g,m.length,h);if(w.length===0)return"";for(let k of w)i.push(k);return`${i.join(`
|
|
362
362
|
`)}
|
|
363
|
-
`}function bm(e,t,n){let r=e.length,o=n.map(i=>{let a=[],c=new Map,f=0;for(let d of i)if(d.type==="keep")a[d.newLineNo-1]="keep",f=d.newLineNo;else if(d.type==="insert")a[d.newLineNo-1]="insert",f=d.newLineNo;else if(d.type==="delete"){let u=c.get(f)??[];u.push({text:d.line,parentLineNo:d.oldLineNo}),c.set(f,u)}return{resultStatus:a,deletions:c}}),s=[];for(let i=0;i<=t.length;i++){let a=[];for(let f=0;f<r;f++){let d=o[f];a.push(d?.deletions.get(i)??[])}let c=ym(a,r);for(let f of c)s.push(f);if(i<t.length){let f=[],d=Array(r).fill(0);for(let u=0;u<r;u++){let m=o[u]?.resultStatus[i];if(f.push(m==="insert"?"+":" "),m==="keep"){let h=n[u];if(h){for(let p of h)if(p.type==="keep"&&p.newLineNo===i+1){d[u]=p.oldLineNo;break}}}}s.push({columns:f,text:t[i]??"",resultLineNo:i+1,parentLineNos:d})}}return s}function ym(e,t){if(!e.some(o=>o.length>0))return[];if(t===2){let o=e[0]??[],s=e[1]??[];if(o.length===0)return s.map(d=>({columns:[" ","-"],text:d.text,resultLineNo:0,parentLineNos:[0,d.parentLineNo]}));if(s.length===0)return o.map(d=>({columns:["-"," "],text:d.text,resultLineNo:0,parentLineNos:[d.parentLineNo,0]}));let i=o.map(d=>d.text),a=s.map(d=>d.text),c=it(i,a),f=[];for(let d of c)if(d.type==="keep"){let u=o.find(m=>m.text===d.line&&m.parentLineNo===d.oldLineNo),l=s.find(m=>m.text===d.line&&m.parentLineNo===d.newLineNo);f.push({columns:["-","-"],text:d.line,resultLineNo:0,parentLineNos:[u?.parentLineNo??0,l?.parentLineNo??0]})}else if(d.type==="delete"){let u=o.find(l=>l.parentLineNo===d.oldLineNo);f.push({columns:["-"," "],text:d.line,resultLineNo:0,parentLineNos:[u?.parentLineNo??0,0]})}else if(d.type==="insert"){let u=s.find(l=>l.parentLineNo===d.newLineNo);f.push({columns:[" ","-"],text:d.line,resultLineNo:0,parentLineNos:[0,u?.parentLineNo??0]})}return f}let r=[];for(let o=0;o<t;o++){let s=e[o]??[];for(let i of s){let a=Array(t).fill(" ");a[o]="-";let c=Array(t).fill(0);c[o]=i.parentLineNo,r.push({columns:a,text:i.text,resultLineNo:0,parentLineNos:c})}}return r}function Em(e,t,n){let o=[];for(let d=0;d<e.length;d++)e[d]?.columns.some(l=>l!==" ")&&o.push(d);if(o.length===0)return[];let s=[],i=o[0]??0,a=Math.max(0,i-3),c=Math.min(e.length-1,i+3);for(let d=1;d<o.length;d++){let u=o[d]??0,l=Math.max(0,u-3),m=Math.min(e.length-1,u+3);l<=c+1||(s.push({start:a,end:c}),a=l),c=m}s.push({start:a,end:c});let f=[];for(let d of s){let u=e.slice(d.start,d.end+1),l=[];for(let E=0;E<t;E++){let x=u.filter(C=>(C.parentLineNos[E]??0)>0||C.columns[E]==="-");if(x.length===0)l.push({start:1,count:0});else{let P=x.find(R=>(R.parentLineNos[E]??0)>0)?.parentLineNos[E]??1;l.push({start:P,count:x.length})}}let m=u.filter(E=>E.resultLineNo>0),h=m[0],p=h?h.resultLineNo:1,g=m.length,w="";for(let E=p-2;E>=0;E--){let x=n[E];if(x&&/^[a-zA-Z$_]/.test(x)){w=` ${x.trimEnd().slice(0,79)}`;break}}let k=l.map(E=>`-${E.start},${E.count}`),b=`${"@".repeat(t+1)} ${k.join(" ")} +${p},${g} ${"@".repeat(t+1)}${w}`;f.push(b);for(let E of u)f.push(`${E.columns.join("")}${E.text}`)}return f}
|
|
363
|
+
`}function bm(e,t,n){let r=e.length,o=n.map(i=>{let a=[],c=new Map,f=0;for(let d of i)if(d.type==="keep")a[d.newLineNo-1]="keep",f=d.newLineNo;else if(d.type==="insert")a[d.newLineNo-1]="insert",f=d.newLineNo;else if(d.type==="delete"){let u=c.get(f)??[];u.push({text:d.line,parentLineNo:d.oldLineNo}),c.set(f,u)}return{resultStatus:a,deletions:c}}),s=[];for(let i=0;i<=t.length;i++){let a=[];for(let f=0;f<r;f++){let d=o[f];a.push(d?.deletions.get(i)??[])}let c=ym(a,r);for(let f of c)s.push(f);if(i<t.length){let f=[],d=Array(r).fill(0);for(let u=0;u<r;u++){let m=o[u]?.resultStatus[i];if(f.push(m==="insert"?"+":" "),m==="keep"){let h=n[u];if(h){for(let p of h)if(p.type==="keep"&&p.newLineNo===i+1){d[u]=p.oldLineNo;break}}}}s.push({columns:f,text:t[i]??"",resultLineNo:i+1,parentLineNos:d})}}return s}function ym(e,t){if(!e.some(o=>o.length>0))return[];if(t===2){let o=e[0]??[],s=e[1]??[];if(o.length===0)return s.map(d=>({columns:[" ","-"],text:d.text,resultLineNo:0,parentLineNos:[0,d.parentLineNo]}));if(s.length===0)return o.map(d=>({columns:["-"," "],text:d.text,resultLineNo:0,parentLineNos:[d.parentLineNo,0]}));let i=o.map(d=>d.text),a=s.map(d=>d.text),c=it(i,a),f=[];for(let d of c)if(d.type==="keep"){let u=o.find(m=>m.text===d.line&&m.parentLineNo===d.oldLineNo),l=s.find(m=>m.text===d.line&&m.parentLineNo===d.newLineNo);f.push({columns:["-","-"],text:d.line,resultLineNo:0,parentLineNos:[u?.parentLineNo??0,l?.parentLineNo??0]})}else if(d.type==="delete"){let u=o.find(l=>l.parentLineNo===d.oldLineNo);f.push({columns:["-"," "],text:d.line,resultLineNo:0,parentLineNos:[u?.parentLineNo??0,0]})}else if(d.type==="insert"){let u=s.find(l=>l.parentLineNo===d.newLineNo);f.push({columns:[" ","-"],text:d.line,resultLineNo:0,parentLineNos:[0,u?.parentLineNo??0]})}return f}let r=[];for(let o=0;o<t;o++){let s=e[o]??[];for(let i of s){let a=Array(t).fill(" ");a[o]="-";let c=Array(t).fill(0);c[o]=i.parentLineNo,r.push({columns:a,text:i.text,resultLineNo:0,parentLineNos:c})}}return r}function Em(e,t,n){let o=[];for(let d=0;d<e.length;d++)e[d]?.columns.some(l=>l!==" ")&&o.push(d);if(o.length===0)return[];let s=[],i=o[0]??0,a=Math.max(0,i-3),c=Math.min(e.length-1,i+3);for(let d=1;d<o.length;d++){let u=o[d]??0,l=Math.max(0,u-3),m=Math.min(e.length-1,u+3);l<=c+1||(s.push({start:a,end:c}),a=l),c=m}s.push({start:a,end:c});let f=[];for(let d of s){let u=e.slice(d.start,d.end+1),l=[];for(let E=0;E<t;E++){let x=u.filter(C=>(C.parentLineNos[E]??0)>0||C.columns[E]==="-");if(x.length===0)l.push({start:1,count:0});else{let P=x.find(R=>(R.parentLineNos[E]??0)>0)?.parentLineNos[E]??1;l.push({start:P,count:x.length})}}let m=u.filter(E=>E.resultLineNo>0),h=m[0],p=h?h.resultLineNo:1,g=m.length,w="";for(let E=p-2;E>=0;E--){let x=n[E];if(x&&/^[a-zA-Z$_]/.test(x)){w=` ${x.trimEnd().slice(0,79)}`;break}}let k=l.map(E=>`-${E.start},${E.count}`),b=`${"@".repeat(t+1)} ${k.join(" ")} +${p},${g} ${"@".repeat(t+1)}${w}`;f.push(b);for(let E of u)f.push(`${E.columns.join("")}${E.text}`)}return f}ne();Ee();se();de();function eo(e){let t=e.indexOf("...");if(t>=0)return{type:"three-dot",left:e.slice(0,t)||"HEAD",right:e.slice(t+3)||"HEAD"};let n=e.indexOf("..");return n>=0?{type:"two-dot",left:e.slice(0,n)||"HEAD",right:e.slice(n+2)||"HEAD"}:null}Ln();ue();Ie();Je();var ui=new TextDecoder;function Jc(e){return"exitCode"in e}function ur(e){return e.toString(8).padStart(6,"0")}function Qc(e,t){let n=[];for(let r of e)n.push({path:r.path,status:r.status==="added"?"A":r.status==="deleted"?"D":"M",oldHash:r.oldHash,newHash:r.newHash,oldMode:r.oldMode,newMode:r.newMode});for(let r of t)n.push({path:r.newPath,status:"R",oldHash:r.oldHash,newHash:r.newHash,oldMode:r.oldMode,newMode:r.newMode,oldPath:r.oldPath,similarity:r.similarity});return n}function ef(e,t){e.command("diff",{description:"Show changes between commits, commit and working tree, etc.",args:[B.string().name("commits").variadic().optional()],options:{cached:H().describe("Show staged changes (index vs HEAD)"),staged:H().describe("Synonym for --cached"),stat:H().describe("Show diffstat summary"),nameOnly:H().describe("Show only names of changed files"),nameStatus:H().describe("Show names and status of changed files"),shortstat:H().describe("Show only the shortstat summary line"),numstat:H().describe("Machine-readable insertions/deletions per file")},handler:async(n,r,o)=>{let s=await U(r.fs,r.cwd,t);if(S(s))return s;let i=s,a=n.cached||n.staged,c=n.commits,f=ct(i,r.cwd),d=o.passthrough.length>0?o.passthrough.map(p=>Ge(p,f)):null,u=n.stat?"stat":n.nameOnly?"name-only":n.nameStatus?"name-status":n.shortstat?"shortstat":n.numstat?"numstat":"unified",l,m=c.length===1?eo(c[0]):null;if(m){if(a)return O("too many arguments");m.type==="three-dot"?l=await Pm(i,m.left,m.right,d):l=await Zc(i,m.left,m.right,d)}else if(c.length===2)l=await Zc(i,c[0],c[1],d);else{if(c.length>2)return O("too many arguments");a?l=await Cm(i,c.length===1?c[0]:null,d):c.length===1?l=await Rm(i,c[0],d):l=await km(i,d)}if(Jc(l))return l;let h=await $m(i,l.items,u);return l.stderr&&(h.stderr=l.stderr),h}})}async function km(e,t){let n=qe(e);if(n)return n;let r=await q(e),o=new Set,s=new Map,i=new Map,a=new Map;for(let d of r.entries)d.stage===0?s.set(d.path,d):(o.add(d.path),d.stage===2?i.set(d.path,d):d.stage===3&&a.set(d.path,d));let c=await Rt(e,r);c.sort((d,u)=>ke(d.path,u.path));let f=[];for(let d of c){if(d.status==="untracked"||t&&!be(t,d.path)||o.has(d.path))continue;let u=s.get(d.path);if(!u)continue;let l=ur(u.mode),m;if(d.status==="modified"&&e.workTree){let h=T(e.workTree,d.path),p=await e.fs.readFileBuffer(h);m=await pt("blob",p)}f.push({path:d.path,status:d.status==="deleted"?"D":"M",oldHash:u.hash,newHash:m,oldMode:l,newMode:l,newFromWorkTree:d.status==="modified"})}for(let d of o){if(t&&!be(t,d))continue;let u=i.get(d),l=a.get(d);await xm(f,e,d,u,l)}return f.sort((d,u)=>{let l=ke(d.path,u.path);return l!==0?l:d.status==="U"&&u.status!=="U"?-1:d.status!=="U"&&u.status==="U"?1:0}),{items:f}}async function xm(e,t,n,r,o){let s=t.workTree;if(s&&r&&o){let i=ur(r.mode),a=ur(o.mode),{exists:c,hash:f}=await Yc(t.fs,s,n);e.push({path:n,status:"U",newHash:f,newMode:i,newFromWorkTree:c,combinedParentHashes:[r.hash,o.hash],combinedParentModes:[i,a]}),Xc(e,n,r.hash,i,c,f);return}if(e.push({path:n,status:"U"}),s&&r){let i=ur(r.mode),{exists:a,hash:c}=await Yc(t.fs,s,n);Xc(e,n,r.hash,i,a,c)}}async function Yc(e,t,n){let r=T(t,n);if(!await e.exists(r))return{exists:!1};let o=await $r(e,r);return{exists:!0,hash:await pt("blob",o)}}function Xc(e,t,n,r,o,s){o&&s&&s!==n?e.push({path:t,status:"M",oldHash:n,newHash:s,oldMode:r,newMode:r,newFromWorkTree:!0}):o||e.push({path:t,status:"D",oldHash:n,oldMode:r})}async function Cm(e,t,n){let r=null;if(t){let l=await Te(e,t);if(S(l))return l;r=l.commit.tree}else{let l=await X(e);l&&(r=(await M(e,l)).tree)}let o=await fe(e,r),s=await q(e),i=new Set;for(let l of s.entries)l.stage>0&&i.add(l.path);let a=new Map(ve(s).map(l=>[l.path,l])),c=[];for(let[l,m]of a){if(i.has(l))continue;let h=o.get(l);h?h.hash!==m.hash&&c.push({path:l,status:"modified",oldHash:h.hash,newHash:m.hash,oldMode:h.mode,newMode:ur(m.mode)}):c.push({path:l,status:"added",newHash:m.hash,newMode:ur(m.mode)})}for(let[l,m]of o)i.has(l)||a.has(l)||c.push({path:l,status:"deleted",oldHash:m.hash,oldMode:m.mode});let{remaining:f,renames:d}=await Qe(e,c),u=Qc(f,d);for(let l of i)u.push({path:l,status:"U"});return u.sort((l,m)=>ke(l.path,m.path)),n?{items:u.filter(l=>be(n,l.path))}:{items:u}}async function Zc(e,t,n,r){let o=await Te(e,t);if(S(o))return o;let s=await Te(e,n);if(S(s))return s;let i=await _e(e,o.commit.tree,s.commit.tree);return tf(e,i,r)}async function Pm(e,t,n,r){let o=await Te(e,t);if(S(o))return o;let s=await Te(e,n);if(S(s))return s;let i=await At(e,o.hash,s.hash);if(i.length===0)return O(`${t}...${n}: no merge base`);let a;i.length>1&&(a=`warning: ${t}...${n}: multiple merge bases, using ${i[0]}
|
|
364
364
|
`);let c=i[0],f=await M(e,c),d=await _e(e,f.tree,s.commit.tree),u=await tf(e,d,r);return Jc(u)||a&&(u.stderr=a),u}async function tf(e,t,n){let{remaining:r,renames:o}=await Qe(e,t),s=Qc(r,o);return s.sort((i,a)=>ke(i.path,a.path)),n?{items:s.filter(i=>be(n,i.path))}:{items:s}}async function Rm(e,t,n){let r=qe(e);if(r)return r;let o=await Te(e,t);if(S(o))return o;let s=e.workTree,i=await fe(e,o.commit.tree),a=[];for(let[c,f]of i){if(n&&!be(n,c))continue;let d=T(s,c);if(!await e.fs.exists(d)){a.push({path:c,status:"D",oldHash:f.hash,oldMode:f.mode});continue}let u=await e.fs.readFileBuffer(d),l=await pt("blob",u);l!==f.hash&&a.push({path:c,status:"M",oldHash:f.hash,newHash:l,oldMode:f.mode,newMode:f.mode,newFromWorkTree:!0})}return a.sort((c,f)=>ke(c.path,f.path)),{items:a}}async function $m(e,t,n){let r;switch(n){case"stat":r=await Am(e,t);break;case"shortstat":r=await Sm(e,t);break;case"numstat":r=await vm(e,t);break;case"name-only":r=Tm(t);break;case"name-status":r=Hm(t);break;default:r=await Im(e,t);break}return{stdout:r,stderr:"",exitCode:0}}async function Im(e,t){let n="",r=new Set,o=await Om(e,t);for(let s of t)if(s.status==="U")if(s.combinedParentHashes){let i=await Promise.all(s.combinedParentHashes.map(async f=>f?await re(e,f):"")),a=await mi(e,s);if(i.some(f=>$e(f))||$e(a)){let f=s.combinedParentHashes.map(d=>d?z(d):"0000000");n+=`diff --cc ${s.path}
|
|
365
365
|
index ${f.join(",")}..0000000
|
|
366
366
|
Binary files differ
|
|
@@ -374,19 +374,19 @@ Binary files differ
|
|
|
374
374
|
`}else n+=`${a} ${c} ${r.path}
|
|
375
375
|
`}return n}async function Am(e,t){let n=await rf(e,t);return Nr(n)}async function Sm(e,t){let n=await rf(e,t);if(n.length===0)return"";let r=0,o=0,s=0;for(let a of n)a.isUnmerged||(s++,r+=a.insertions,o+=a.deletions);let i=cr(s,r,o);return i?`${i}
|
|
376
376
|
`:n.some(a=>a.isUnmerged)?` 0 files changed
|
|
377
|
-
`:""}async function mi(e,t){if(!t.newHash)return"";if(t.newFromWorkTree&&e.workTree){let n=T(e.workTree,t.path),r=await $r(e.fs,n);return ui.decode(r)}return re(e,t.newHash)}async function Dm(e,t){if(!t.newHash)return new Uint8Array(0);if(t.newFromWorkTree&&e.workTree){let n=T(e.workTree,t.path);return $r(e.fs,n)}return gt(e,t.newHash)}function nf(e,t){let n=Lt(e),r=Lt(t),o=it(n,r),s=0,i=0;for(let a of o)a.type==="insert"?s++:a.type==="delete"&&i++;return{ins:s,del:i}}async function rf(e,t){let n=[];for(let r of t){if(r.status==="U"){n.push({path:r.path,sortKey:r.path,insertions:0,deletions:0,isUnmerged:!0});continue}let o=r.status==="R"&&r.oldPath?Cn(r.oldPath,r.path):r.path,s=r.oldHash?await gt(e,r.oldHash):new Uint8Array(0),i=await Dm(e,r);if(pn(s)||pn(i))n.push({path:o,sortKey:r.path,insertions:0,deletions:0,isBinary:!0,oldSize:s.byteLength,newSize:i.byteLength});else{let a=ui.decode(s),c=ui.decode(i),{ins:f,del:d}=nf(a,c);n.push({path:o,sortKey:r.path,insertions:f,deletions:d})}}return n}
|
|
377
|
+
`:""}async function mi(e,t){if(!t.newHash)return"";if(t.newFromWorkTree&&e.workTree){let n=T(e.workTree,t.path),r=await $r(e.fs,n);return ui.decode(r)}return re(e,t.newHash)}async function Dm(e,t){if(!t.newHash)return new Uint8Array(0);if(t.newFromWorkTree&&e.workTree){let n=T(e.workTree,t.path);return $r(e.fs,n)}return gt(e,t.newHash)}function nf(e,t){let n=Lt(e),r=Lt(t),o=it(n,r),s=0,i=0;for(let a of o)a.type==="insert"?s++:a.type==="delete"&&i++;return{ins:s,del:i}}async function rf(e,t){let n=[];for(let r of t){if(r.status==="U"){n.push({path:r.path,sortKey:r.path,insertions:0,deletions:0,isUnmerged:!0});continue}let o=r.status==="R"&&r.oldPath?Cn(r.oldPath,r.path):r.path,s=r.oldHash?await gt(e,r.oldHash):new Uint8Array(0),i=await Dm(e,r);if(pn(s)||pn(i))n.push({path:o,sortKey:r.path,insertions:0,deletions:0,isBinary:!0,oldSize:s.byteLength,newSize:i.byteLength});else{let a=ui.decode(s),c=ui.decode(i),{ins:f,del:d}=nf(a,c);n.push({path:o,sortKey:r.path,insertions:f,deletions:d})}}return n}ne();ln();de();Le();ue();function Yn(e){let t=e,n=!1;t.startsWith("+")&&(n=!0,t=t.slice(1));let r=t.indexOf(":");return r===-1?{force:n,src:t,dst:t}:{force:n,src:t.slice(0,r),dst:t.slice(r+1)}}function Mm(e,t){let n=e.indexOf("*");if(n===-1)return e===t;let r=e.slice(0,n),o=e.slice(n+1);return t.startsWith(r)&&t.endsWith(o)&&t.length>=r.length+o.length}function no(e,t){if(!Mm(e.src,t))return null;let n=e.src.indexOf("*"),r=e.dst.indexOf("*");if(n===-1)return e.dst;let o=e.src.slice(0,n),s=e.src.slice(n+1),i=s.length>0?t.length-s.length:t.length,a=t.slice(o.length,i);return r===-1?e.dst:e.dst.slice(0,r)+a+e.dst.slice(r+1)}function sf(e,t){e.command("fetch",{description:"Download objects and refs from another repository",args:[B.string().name("remote").describe("Remote to fetch from").optional(),B.string().name("refspec").describe("Refspec(s) to fetch").optional().variadic()],options:{all:H().describe("Fetch from all remotes"),prune:H().alias("p").describe("Remove stale remote-tracking refs"),tags:H().describe("Also fetch tags")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o,i=n.remote||"origin",a;try{a=await lr(s,i,r.env)}catch(y){let $=y instanceof Error?y.message:"";if($.startsWith("network"))return O($);throw y}if(!a)return O(`'${i}' does not appear to be a git repository`);let{transport:c,config:f}=a,d=n.refspec,u;if(d&&d.length>0?u=d.map(Yn):u=[Yn(f.fetchRefspec)],t?.hooks){let y=await t.hooks.emitPre("pre-fetch",{remote:i,url:f.url,refspecs:u.map($=>`${$.src}:${$.dst}`),prune:n.prune,tags:n.tags});if(y)return{stdout:"",stderr:y.message??"",exitCode:1}}let l=await c.advertiseRefs();if(l.length===0)return{stdout:"",stderr:"",exitCode:0};let h=(await ge(s)).map(y=>y.hash),p=await _(s,"HEAD");p&&h.push(p);let g=[],w=new Set,k=[];for(let y of l)if(y.name!=="HEAD")for(let $ of u){let v=no($,y.name);if(v!==null){k.push({remote:y,localRef:v,force:$.force}),w.has(y.hash)||(w.add(y.hash),g.push(y.hash));break}}if(n.tags)for(let y of l)y.name.startsWith("refs/tags/")&&(k.push({remote:y,localRef:y.name,force:!1}),w.has(y.hash)||(w.add(y.hash),g.push(y.hash)));let b=new Set(h),E=g.filter(y=>!b.has(y));E.length>0&&await c.fetch(E,h);let x=await _t(s,r.env),C=[];C.push(`From ${f.url}
|
|
378
378
|
`);for(let y of k){let $=await _(s,y.localRef);await V(s,y.localRef,y.remote.hash),await Ue(s,y.localRef,{oldHash:$??J,newHash:y.remote.hash,name:x.name,email:x.email,timestamp:x.timestamp,tz:x.tz,message:$?"fetch":"fetch: storing head"});let v=ro(y.remote.name),G=ro(y.localRef);if($){if($!==y.remote.hash){let L=z($),Y=z(y.remote.hash);C.push(` ${L}..${Y} ${v} -> ${G}
|
|
379
379
|
`)}}else{let Y=y.remote.name.startsWith("refs/tags/")?" * [new tag]":" * [new branch]";C.push(`${Y} ${v} -> ${G}
|
|
380
380
|
`)}}if(!n.tags)for(let y of l){if(!y.name.startsWith("refs/tags/")||w.has(y.hash))continue;let $=await _(s,y.name),v=y.peeledHash??y.hash;!$&&b.has(v)&&(await V(s,y.name,y.hash),await Ue(s,y.name,{oldHash:J,newHash:y.hash,name:x.name,email:x.email,timestamp:x.timestamp,tz:x.tz,message:"fetch: storing head"}),C.push(` * [new tag] ${ro(y.name)} -> ${ro(y.name)}
|
|
381
381
|
`))}if(n.prune){let y=`refs/remotes/${i}`,$=await ge(s,y),v=new Set(l.filter(G=>G.name.startsWith("refs/heads/")).map(G=>G.name.slice(11)));for(let G of $){let L=G.name.slice(y.length+1);v.has(L)||(await le(s,G.name),C.push(` - [deleted] (none) -> ${i}/${L}
|
|
382
382
|
`))}}let P=l.find(y=>y.name==="HEAD");if(P){let y=T(s.gitDir,"FETCH_HEAD"),$=l.find(G=>G.name.startsWith("refs/heads/")&&G.hash===P.hash),v=$?`branch '${$.name.slice(11)}' of`:"of";await r.fs.writeFile(y,`${P.hash} ${v} ${f.url}
|
|
383
|
-
`)}let R={stdout:"",stderr:C.join(""),exitCode:0};return await t?.hooks?.emitPost("post-fetch",{remote:i,url:f.url,refsUpdated:k.length}),R}})}function ro(e){return e.startsWith("refs/heads/")?e.slice(11):e.startsWith("refs/tags/")?e.slice(10):e.startsWith("refs/remotes/")?e.slice(13):e}te();Ee();se();de();Le();ue();te();Ee();se();de();Le();ue();async function of(e){let t=new Set,n=await X(e);n&&t.add(n);let r=await ge(e,"refs");for(let a of r)t.add(a.hash);let o=T(e.gitDir,"logs");await e.fs.exists(o)&&await af(e,o,o,t);let s=await q(e);for(let a of s.entries)t.add(a.hash);for(let a of["MERGE_HEAD","CHERRY_PICK_HEAD","ORIG_HEAD"]){let c=await _(e,a);c&&t.add(c)}let i=[];for(let a of t)await hn(e,a)&&i.push(a);return i}async function af(e,t,n,r){let o=await e.fs.readdir(t);for(let s of o){let i=T(t,s),a=await e.fs.stat(i);if(a.isDirectory)await af(e,i,n,r);else if(a.isFile){let c=i.slice(n.length+1),f=await ze(e,c);for(let d of f)d.newHash!==J&&r.add(d.newHash)}}}var oo=new Uint32Array([0,2874782929,1454598562,4260027763,104818581,2909197124,1351355959,4225088230,209637162,2804382715,1523426952,4053013081,172075199,2702711918,1559413021,4155209164,419274324,3013880453,1313798134,3843506983,516094401,3046853904,1215402083,3811058866,344150398,3218793903,1110456540,3916008461,314324715,3118826042,1141858121,4015451032,838548648,2594343033,1732793610,3423723995,935615293,2627596268,1635201695,3392046670,1032188802,2531018579,1798740512,3228511985,1002083351,2430804166,1829371317,3327150436,688300796,2187269677,2142620510,3572268943,792315241,2220913080,2039131339,3537049626,628649430,2384582919,1942684788,3633492133,591858243,2283716242,1978950625,3735934768,1677097296,3366964609,893718770,2652677155,1707679429,3465587220,863663975,2552480694,1871230586,3302032043,960225240,2455923465,1773654511,3270403390,1057273933,2489126044,2064377604,3495056341,767069862,2262907511,2100592785,3597481024,730327347,2162056674,2004166702,3693911295,566641036,2325738845,1900695483,3658742634,670639641,2359333576,1376601592,4183093545,79572058,2951190667,1412571757,4285241020,42027983,2849570590,1584630482,4113186307,146858864,2744735649,1481436487,4078262678,251626725,2779131956,1257298860,3785977725,474198542,3071936223,1288682553,3885369576,444388763,2972016970,1183716486,3990331479,272465188,3143944693,1085371155,3957901250,369236657,3176902240,1823819377,3354194592,973483987,2438961922,1787437540,3251868981,1010387014,2539715735,1623951707,3415358858,913891577,2636207144,1727327950,3450690079,809994092,2602447805,1950930981,3742461172,586920327,2309096790,1920450480,3643673441,616879634,2409456323,2016810767,3547309022,780500653,2245839484,2114547866,3578840139,683284792,2212736489,1565424345,4128755208,201134971,2695145386,1534139724,4029196701,230847726,2795225151,1362146803,4201185570,126082129,2899994752,1460654694,4233520823,29146052,2867138325,1169417357,4008333404,318803247,3092855294,1133282072,3906287561,356510394,3194379883,1238182823,3801390966,528368133,3022517972,1341279282,3836475619,423699856,2987954497,256065313,2753203184,1508923011,4071219794,159144116,2720394341,1607414038,4103505351,54390795,2825143514,1435408809,4275514744,84055966,2925208399,1404173884,4175973101,398369141,3169260964,1091422423,3931405318,293717728,3134747185,1194504002,3966442387,465595999,2962872974,1299384317,3861558060,503253450,3064380699,1263296616,3759527097,1052246921,2514597720,1745578539,3276988154,948397084,2480853197,1848905150,3312302447,851889315,2577365106,1685431553,3475771856,888777526,2678071271,1649066644,3373495877,642096605,2367432972,1895232639,3685695662,544930376,2334346905,1992922090,3717211963,708530935,2170742310,2089302869,3620835204,738473314,2271052211,2058837184,3522095121]),jm=new Uint32Array([0,2125799437,1446245579,679924934,121527623,2039184714,1359849868,800622977,243055246,1892260483,1481592389,653946440,155379657,2012727236,1601245954,566506255,486110492,1649169681,1254785495,880779738,466036827,1701972054,1307892880,859962525,310759314,1815146399,1152793433,973282132,364614357,1796125400,1133012510,1027425811,972220984,1195887157,1874927347,292830974,1053603711,1081710450,1761559476,373973945,932073654,1228632251,1639818365,520651888,816844273,1308962300,1719925050,406247735,621518628,1539227433,1933077487,227363810,573948515,1551950446,1946564264,179508901,729228714,1438778791,2101662049,66187628,743012589,1392269536,2054851622,80718891,1944441968,223409277,634790075,1533214902,1960544567,175024442,585661948,1549622769,2107207422,53235443,732600885,1428142648,2057778105,68293556,747947890,1377953663,1864147308,296321377,959403431,1201305002,1747123243,379051046,1041303776,1084500205,1633688546,534068207,928247593,1239863076,1717454501,418080424,812495470,1322816099,1243037256,883039813,472173187,1653729934,1294557967,865878786,454727620,1706014665,1147897030,987669707,307785741,1827491840,1129699713,1038154124,359017802,1808993607,1458457428,677079897,14532511,2120785810,1372591635,795162142,132375256,2035729109,1486025178,640143831,245433617,1880368412,1605151901,555322512,161437782,1999272027,1284643889,841432124,446818554,1679083767,1269580150,890855803,497006013,1663735216,1122936511,1012631218,350048884,1785229945,1171323896,996531189,333647667,1834364734,1349216557,786319648,106470886,2028846571,1465201770,702551143,23511201,2144592044,1578619811,547550126,136587112,1989216101,1495895780,664579817,253393455,1907317282,1969288713,198563332,592642754,1575363279,1918806862,216763203,611147653,1524137864,2065452167,94989450,758102092,1402640449,2082607552,43463117,705815819,1420084486,1771668245,388801304,1068136414,1092573139,1856495186,269680223,949234329,1176570516,1743075739,424679830,836160848,1331948893,1624990940,510543057,921210903,1214099482,1064814657,1103292492,1766079626,401677447,944346374,1190966539,1853514189,282018240,822833871,1337873090,1731757572,428713481,909455240,1216352133,1611062083,515111758,596557149,1564187984,1975339414,185100699,615571482,1510326295,1921193169,204879068,770836435,1397172190,2076308248,91542293,718035604,1417247385,2097131103,38440530,109388409,2016412276,1354159794,772011711,29065022,2131648307,1468566517,691907576,150575351,1984739578,1590324284,545213489,264750512,1903355325,1509175675,658575734,444356453,1690924904,1280287662,855278499,490867234,1677142575,1265762025,902094564,335605227,1790299622,1110645024,1015429421,322875564,1837863073,1158497383,1001940074]),so=64,Lm=4,hi=4096,cf=65536,Gm=127;function Nm(e){let t=e.byteLength;if(t===0)return null;let n=(t-1)/16|0;if(n===0)return null;let r=n>>>2;r<16&&(r=16),r=Fm(r);let o=r-1,s=new Uint32Array(r),i=[],a=-1>>>0;for(let l=n*16-16;l>=0;l-=16){let m=0;for(let h=1;h<=16;h++)m=(m<<8|e[l+h])^oo[m>>>23];if(m=m>>>0,m===a)i[i.length-1].ptr=l+16;else{a=m;let h=m&o;i.push({ptr:l+16,val:m}),s[h]++}}let c=new Map;for(let l of i){let m=l.val&o,h=c.get(m);h||(h=[],c.set(m,h)),h.push(l)}for(let[l,m]of c){if(m.length<=so)continue;let h=[],p=m.length/so;for(let g=0;g<so;g++)h.push(m[Math.floor(g*p)]);c.set(l,h),s[l]=so}let f=new Uint32Array(r+1),d=[],u=0;for(let l=0;l<r;l++){f[l]=u;let m=c.get(l);if(m){for(let h of m)d.push(h);u+=m.length}}return f[r]=u,{src:e,hashMask:o,buckets:f,entries:d}}function _m(e,t,n){if(!e||t.byteLength===0)return null;let r=e.src.byteLength,o=t.byteLength,s=e.src,i=new Uint8Array(Math.max(o,1024)),a=0;function c(p){for(;a+p>i.length;){let g=new Uint8Array(i.length*2);g.set(i),i=g}}a=df(i,a,r),a=df(i,a,o),c(18),a++;let f=0,d=0,u=Math.min(16,o);for(let p=0;p<u;p++)i[a++]=t[p],f=(f<<8|t[p])^oo[f>>>23],d++;f=f>>>0;let l=u,m=0,h=0;for(;l<o;){if(h<hi){f^=jm[t[l-16]],f=((f<<8|t[l])^oo[f>>>23])>>>0;let p=f&e.hashMask,g=e.buckets[p],w=e.buckets[p+1];for(let k=g;k<w;k++){let b=e.entries[k];if(b.val!==f)continue;let E=b.ptr,x=s.byteLength-E,C=o-l;if(x>C&&(x=C),x<=h)break;let P=0;for(;P<x&&s[E+P]===t[l+P];)P++;if(P>h&&(h=P,m=E,h>=hi))break}}if(h<Lm)c(2),d===0&&a++,i[a++]=t[l++],d++,d===Gm&&(i[a-d-1]=d,d=0),h=0;else{if(d>0){for(;m>0&&s[m-1]===t[l-1];)if(h++,m--,l--,a--,!(--d>0)){a--,d=-1;break}d>0&&(i[a-d-1]=d),d=0}let p=h>cf?h-cf:0;h-=p,c(8);let g=a++,w=128;if(m&255&&(i[a++]=m&255,w|=1),m&65280&&(i[a++]=m>>>8&255,w|=2),m&16711680&&(i[a++]=m>>>16&255,w|=4),m&4278190080&&(i[a++]=m>>>24&255,w|=8),h&255&&(i[a++]=h&255,w|=16),h&65280&&(i[a++]=h>>>8&255,w|=32),i[g]=w,l+=h,m+=h,h=p,m>4294967295&&(h=0),h<hi){f=0;for(let k=-16;k<0;k++)f=(f<<8|t[l+k])^oo[f>>>23];f=f>>>0}}if(n&&a>n)return null}return d>0&&(i[a-d-1]=d),n&&a>n?null:i.subarray(0,a)}var ff={blob:0,tree:1,commit:2,tag:3};function lf(e,t){let n=t?.window??10,r=t?.depth??50,o=e.slice().sort((f,d)=>{let u=ff[f.type]??99,l=ff[d.type]??99;return u!==l?u-l:d.content.byteLength-f.content.byteLength}),s=new Map,i=[],a=[],c=[];for(let f=0;f<o.length;f++){let d=o[f],u={hash:d.hash,type:d.type,content:d.content,depth:0},l=null,m=null,h=Math.max(0,f-n);for(let p=f-1;p>=h;p--){let g=o[p];if(g.type!==d.type||(s.get(g.hash)?.depth??0)>=r||d.content.byteLength<g.content.byteLength>>>5)continue;let b=a[p-h]??null;if(!b)continue;let E=l?l.byteLength:d.content.byteLength/2|0;if(E<16)continue;let x=_m(b,d.content,E);x&&(!l||x.byteLength<l.byteLength)&&(l=x,m=g.hash)}if(l&&m){u.delta=l,u.deltaBase=m;let p=s.get(m);u.depth=(p?.depth??0)+1}s.set(d.hash,u),i.push(u),a.length>=n&&(a.shift(),c.shift()),a.push(Nm(d.content)),c.push(d.hash)}return i}function Fm(e){let t=e;return t--,t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,t++,t<16?16:t}function df(e,t,n){let r=n;do{let o=r&127;r>>>=7,r>0&&(o|=128),e[t++]=o}while(r>0);return t}ds();yr();de();async function Um(e,t){let n=new Set,r=T(e.gitDir,"objects","pack");try{let s=await e.fs.readdir(r);for(let i of s){if(!i.endsWith(".idx"))continue;let a=await e.fs.readFileBuffer(T(r,i)),c=new Mn(a);for(let f of c.allHashes())n.add(f)}}catch{}return n.size===0?Ys(e,t,[]):(await Ys(e,t,[])).filter(s=>!n.has(s.hash))}async function pi(e){let{gitCtx:t,fs:n,tips:r,cleanup:o}=e,s=e.window??10,i=e.depth??50;if(r.length===0)return null;let a=e.all?await Ys(t,r,[]):await Um(t,r);if(a.length===0)return null;let c=a.length,f=lf(a,{window:s,depth:i}),d=f.filter(C=>C.delta).length,u=f.map(C=>({hash:C.hash,type:C.type,content:C.content,delta:C.delta,deltaBaseHash:C.deltaBase})),{data:l,entries:m}=await na(u),h=await aa(l,m),p=l.subarray(l.byteLength-20),g="";for(let C=0;C<20;C++){let P=p[C];g+=(P>>4).toString(16)+(P&15).toString(16)}let w=T(t.gitDir,"objects","pack");await n.mkdir(w,{recursive:!0});let k=`pack-${g}`,b=T(w,`${k}.pack`),E=T(w,`${k}.idx`);await n.writeFile(b,l),await n.writeFile(E,h);let x=new Set(f.map(C=>C.hash));if(o){let C=await n.readdir(w);for(let y of C){if(!y.endsWith(".idx"))continue;let $=y.slice(0,-4);if($===k)continue;let v=T(w,`${$}.idx`),G=!0;try{let L=await n.readFileBuffer(v),Y=new Mn(L);for(let j of Y.allHashes())if(!x.has(j)){G=!1;break}}catch{G=!1}if(G){try{await n.rm(T(w,`${$}.pack`))}catch{}try{await n.rm(v)}catch{}}}let P=T(t.gitDir,"objects"),R;try{R=await n.readdir(P)}catch{R=[]}for(let y of R){if(y==="pack"||y==="info"||y.length!==2)continue;let $=T(P,y),v;try{v=await n.readdir($)}catch{continue}for(let G of v){let L=`${y}${G}`;x.has(L)&&await n.rm(T($,G))}try{(await n.readdir($)).length===0&&await n.rm($,{recursive:!0})}catch{}}}return{totalCount:c,deltaCount:d,packHash:g}}function gi(e,t,n=!1){let r=e-t,o=[`Enumerating objects: ${e}, done.`];return n&&o.push(`Counting objects: 100% (${e}/${e}), done.`),o.push("Delta compression using 1 thread.",`Compressing objects: 100% (${r}/${e}), done.`,`Writing objects: 100% (${e}/${e}), done.`,`Total ${e} (delta ${t}), reused 0 (delta 0), pack-reused 0`),o.join(`
|
|
383
|
+
`)}let R={stdout:"",stderr:C.join(""),exitCode:0};return await t?.hooks?.emitPost("post-fetch",{remote:i,url:f.url,refsUpdated:k.length}),R}})}function ro(e){return e.startsWith("refs/heads/")?e.slice(11):e.startsWith("refs/tags/")?e.slice(10):e.startsWith("refs/remotes/")?e.slice(13):e}ne();Ee();se();de();Le();ue();ne();Ee();se();de();Le();ue();async function of(e){let t=new Set,n=await X(e);n&&t.add(n);let r=await ge(e,"refs");for(let a of r)t.add(a.hash);let o=T(e.gitDir,"logs");await e.fs.exists(o)&&await af(e,o,o,t);let s=await q(e);for(let a of s.entries)t.add(a.hash);for(let a of["MERGE_HEAD","CHERRY_PICK_HEAD","ORIG_HEAD"]){let c=await _(e,a);c&&t.add(c)}let i=[];for(let a of t)await hn(e,a)&&i.push(a);return i}async function af(e,t,n,r){let o=await e.fs.readdir(t);for(let s of o){let i=T(t,s),a=await e.fs.stat(i);if(a.isDirectory)await af(e,i,n,r);else if(a.isFile){let c=i.slice(n.length+1),f=await ze(e,c);for(let d of f)d.newHash!==J&&r.add(d.newHash)}}}var oo=new Uint32Array([0,2874782929,1454598562,4260027763,104818581,2909197124,1351355959,4225088230,209637162,2804382715,1523426952,4053013081,172075199,2702711918,1559413021,4155209164,419274324,3013880453,1313798134,3843506983,516094401,3046853904,1215402083,3811058866,344150398,3218793903,1110456540,3916008461,314324715,3118826042,1141858121,4015451032,838548648,2594343033,1732793610,3423723995,935615293,2627596268,1635201695,3392046670,1032188802,2531018579,1798740512,3228511985,1002083351,2430804166,1829371317,3327150436,688300796,2187269677,2142620510,3572268943,792315241,2220913080,2039131339,3537049626,628649430,2384582919,1942684788,3633492133,591858243,2283716242,1978950625,3735934768,1677097296,3366964609,893718770,2652677155,1707679429,3465587220,863663975,2552480694,1871230586,3302032043,960225240,2455923465,1773654511,3270403390,1057273933,2489126044,2064377604,3495056341,767069862,2262907511,2100592785,3597481024,730327347,2162056674,2004166702,3693911295,566641036,2325738845,1900695483,3658742634,670639641,2359333576,1376601592,4183093545,79572058,2951190667,1412571757,4285241020,42027983,2849570590,1584630482,4113186307,146858864,2744735649,1481436487,4078262678,251626725,2779131956,1257298860,3785977725,474198542,3071936223,1288682553,3885369576,444388763,2972016970,1183716486,3990331479,272465188,3143944693,1085371155,3957901250,369236657,3176902240,1823819377,3354194592,973483987,2438961922,1787437540,3251868981,1010387014,2539715735,1623951707,3415358858,913891577,2636207144,1727327950,3450690079,809994092,2602447805,1950930981,3742461172,586920327,2309096790,1920450480,3643673441,616879634,2409456323,2016810767,3547309022,780500653,2245839484,2114547866,3578840139,683284792,2212736489,1565424345,4128755208,201134971,2695145386,1534139724,4029196701,230847726,2795225151,1362146803,4201185570,126082129,2899994752,1460654694,4233520823,29146052,2867138325,1169417357,4008333404,318803247,3092855294,1133282072,3906287561,356510394,3194379883,1238182823,3801390966,528368133,3022517972,1341279282,3836475619,423699856,2987954497,256065313,2753203184,1508923011,4071219794,159144116,2720394341,1607414038,4103505351,54390795,2825143514,1435408809,4275514744,84055966,2925208399,1404173884,4175973101,398369141,3169260964,1091422423,3931405318,293717728,3134747185,1194504002,3966442387,465595999,2962872974,1299384317,3861558060,503253450,3064380699,1263296616,3759527097,1052246921,2514597720,1745578539,3276988154,948397084,2480853197,1848905150,3312302447,851889315,2577365106,1685431553,3475771856,888777526,2678071271,1649066644,3373495877,642096605,2367432972,1895232639,3685695662,544930376,2334346905,1992922090,3717211963,708530935,2170742310,2089302869,3620835204,738473314,2271052211,2058837184,3522095121]),jm=new Uint32Array([0,2125799437,1446245579,679924934,121527623,2039184714,1359849868,800622977,243055246,1892260483,1481592389,653946440,155379657,2012727236,1601245954,566506255,486110492,1649169681,1254785495,880779738,466036827,1701972054,1307892880,859962525,310759314,1815146399,1152793433,973282132,364614357,1796125400,1133012510,1027425811,972220984,1195887157,1874927347,292830974,1053603711,1081710450,1761559476,373973945,932073654,1228632251,1639818365,520651888,816844273,1308962300,1719925050,406247735,621518628,1539227433,1933077487,227363810,573948515,1551950446,1946564264,179508901,729228714,1438778791,2101662049,66187628,743012589,1392269536,2054851622,80718891,1944441968,223409277,634790075,1533214902,1960544567,175024442,585661948,1549622769,2107207422,53235443,732600885,1428142648,2057778105,68293556,747947890,1377953663,1864147308,296321377,959403431,1201305002,1747123243,379051046,1041303776,1084500205,1633688546,534068207,928247593,1239863076,1717454501,418080424,812495470,1322816099,1243037256,883039813,472173187,1653729934,1294557967,865878786,454727620,1706014665,1147897030,987669707,307785741,1827491840,1129699713,1038154124,359017802,1808993607,1458457428,677079897,14532511,2120785810,1372591635,795162142,132375256,2035729109,1486025178,640143831,245433617,1880368412,1605151901,555322512,161437782,1999272027,1284643889,841432124,446818554,1679083767,1269580150,890855803,497006013,1663735216,1122936511,1012631218,350048884,1785229945,1171323896,996531189,333647667,1834364734,1349216557,786319648,106470886,2028846571,1465201770,702551143,23511201,2144592044,1578619811,547550126,136587112,1989216101,1495895780,664579817,253393455,1907317282,1969288713,198563332,592642754,1575363279,1918806862,216763203,611147653,1524137864,2065452167,94989450,758102092,1402640449,2082607552,43463117,705815819,1420084486,1771668245,388801304,1068136414,1092573139,1856495186,269680223,949234329,1176570516,1743075739,424679830,836160848,1331948893,1624990940,510543057,921210903,1214099482,1064814657,1103292492,1766079626,401677447,944346374,1190966539,1853514189,282018240,822833871,1337873090,1731757572,428713481,909455240,1216352133,1611062083,515111758,596557149,1564187984,1975339414,185100699,615571482,1510326295,1921193169,204879068,770836435,1397172190,2076308248,91542293,718035604,1417247385,2097131103,38440530,109388409,2016412276,1354159794,772011711,29065022,2131648307,1468566517,691907576,150575351,1984739578,1590324284,545213489,264750512,1903355325,1509175675,658575734,444356453,1690924904,1280287662,855278499,490867234,1677142575,1265762025,902094564,335605227,1790299622,1110645024,1015429421,322875564,1837863073,1158497383,1001940074]),so=64,Lm=4,hi=4096,cf=65536,Gm=127;function Nm(e){let t=e.byteLength;if(t===0)return null;let n=(t-1)/16|0;if(n===0)return null;let r=n>>>2;r<16&&(r=16),r=Fm(r);let o=r-1,s=new Uint32Array(r),i=[],a=-1>>>0;for(let l=n*16-16;l>=0;l-=16){let m=0;for(let h=1;h<=16;h++)m=(m<<8|e[l+h])^oo[m>>>23];if(m=m>>>0,m===a)i[i.length-1].ptr=l+16;else{a=m;let h=m&o;i.push({ptr:l+16,val:m}),s[h]++}}let c=new Map;for(let l of i){let m=l.val&o,h=c.get(m);h||(h=[],c.set(m,h)),h.push(l)}for(let[l,m]of c){if(m.length<=so)continue;let h=[],p=m.length/so;for(let g=0;g<so;g++)h.push(m[Math.floor(g*p)]);c.set(l,h),s[l]=so}let f=new Uint32Array(r+1),d=[],u=0;for(let l=0;l<r;l++){f[l]=u;let m=c.get(l);if(m){for(let h of m)d.push(h);u+=m.length}}return f[r]=u,{src:e,hashMask:o,buckets:f,entries:d}}function _m(e,t,n){if(!e||t.byteLength===0)return null;let r=e.src.byteLength,o=t.byteLength,s=e.src,i=new Uint8Array(Math.max(o,1024)),a=0;function c(p){for(;a+p>i.length;){let g=new Uint8Array(i.length*2);g.set(i),i=g}}a=df(i,a,r),a=df(i,a,o),c(18),a++;let f=0,d=0,u=Math.min(16,o);for(let p=0;p<u;p++)i[a++]=t[p],f=(f<<8|t[p])^oo[f>>>23],d++;f=f>>>0;let l=u,m=0,h=0;for(;l<o;){if(h<hi){f^=jm[t[l-16]],f=((f<<8|t[l])^oo[f>>>23])>>>0;let p=f&e.hashMask,g=e.buckets[p],w=e.buckets[p+1];for(let k=g;k<w;k++){let b=e.entries[k];if(b.val!==f)continue;let E=b.ptr,x=s.byteLength-E,C=o-l;if(x>C&&(x=C),x<=h)break;let P=0;for(;P<x&&s[E+P]===t[l+P];)P++;if(P>h&&(h=P,m=E,h>=hi))break}}if(h<Lm)c(2),d===0&&a++,i[a++]=t[l++],d++,d===Gm&&(i[a-d-1]=d,d=0),h=0;else{if(d>0){for(;m>0&&s[m-1]===t[l-1];)if(h++,m--,l--,a--,!(--d>0)){a--,d=-1;break}d>0&&(i[a-d-1]=d),d=0}let p=h>cf?h-cf:0;h-=p,c(8);let g=a++,w=128;if(m&255&&(i[a++]=m&255,w|=1),m&65280&&(i[a++]=m>>>8&255,w|=2),m&16711680&&(i[a++]=m>>>16&255,w|=4),m&4278190080&&(i[a++]=m>>>24&255,w|=8),h&255&&(i[a++]=h&255,w|=16),h&65280&&(i[a++]=h>>>8&255,w|=32),i[g]=w,l+=h,m+=h,h=p,m>4294967295&&(h=0),h<hi){f=0;for(let k=-16;k<0;k++)f=(f<<8|t[l+k])^oo[f>>>23];f=f>>>0}}if(n&&a>n)return null}return d>0&&(i[a-d-1]=d),n&&a>n?null:i.subarray(0,a)}var ff={blob:0,tree:1,commit:2,tag:3};function lf(e,t){let n=t?.window??10,r=t?.depth??50,o=e.slice().sort((f,d)=>{let u=ff[f.type]??99,l=ff[d.type]??99;return u!==l?u-l:d.content.byteLength-f.content.byteLength}),s=new Map,i=[],a=[],c=[];for(let f=0;f<o.length;f++){let d=o[f],u={hash:d.hash,type:d.type,content:d.content,depth:0},l=null,m=null,h=Math.max(0,f-n);for(let p=f-1;p>=h;p--){let g=o[p];if(g.type!==d.type||(s.get(g.hash)?.depth??0)>=r||d.content.byteLength<g.content.byteLength>>>5)continue;let b=a[p-h]??null;if(!b)continue;let E=l?l.byteLength:d.content.byteLength/2|0;if(E<16)continue;let x=_m(b,d.content,E);x&&(!l||x.byteLength<l.byteLength)&&(l=x,m=g.hash)}if(l&&m){u.delta=l,u.deltaBase=m;let p=s.get(m);u.depth=(p?.depth??0)+1}s.set(d.hash,u),i.push(u),a.length>=n&&(a.shift(),c.shift()),a.push(Nm(d.content)),c.push(d.hash)}return i}function Fm(e){let t=e;return t--,t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,t++,t<16?16:t}function df(e,t,n){let r=n;do{let o=r&127;r>>>=7,r>0&&(o|=128),e[t++]=o}while(r>0);return t}ds();yr();de();async function Um(e,t){let n=new Set,r=T(e.gitDir,"objects","pack");try{let s=await e.fs.readdir(r);for(let i of s){if(!i.endsWith(".idx"))continue;let a=await e.fs.readFileBuffer(T(r,i)),c=new Mn(a);for(let f of c.allHashes())n.add(f)}}catch{}return n.size===0?Ys(e,t,[]):(await Ys(e,t,[])).filter(s=>!n.has(s.hash))}async function pi(e){let{gitCtx:t,fs:n,tips:r,cleanup:o}=e,s=e.window??10,i=e.depth??50;if(r.length===0)return null;let a=e.all?await Ys(t,r,[]):await Um(t,r);if(a.length===0)return null;let c=a.length,f=lf(a,{window:s,depth:i}),d=f.filter(C=>C.delta).length,u=f.map(C=>({hash:C.hash,type:C.type,content:C.content,delta:C.delta,deltaBaseHash:C.deltaBase})),{data:l,entries:m}=await na(u),h=await aa(l,m),p=l.subarray(l.byteLength-20),g="";for(let C=0;C<20;C++){let P=p[C];g+=(P>>4).toString(16)+(P&15).toString(16)}let w=T(t.gitDir,"objects","pack");await n.mkdir(w,{recursive:!0});let k=`pack-${g}`,b=T(w,`${k}.pack`),E=T(w,`${k}.idx`);await n.writeFile(b,l),await n.writeFile(E,h);let x=new Set(f.map(C=>C.hash));if(o){let C=await n.readdir(w);for(let y of C){if(!y.endsWith(".idx"))continue;let $=y.slice(0,-4);if($===k)continue;let v=T(w,`${$}.idx`),G=!0;try{let L=await n.readFileBuffer(v),Y=new Mn(L);for(let j of Y.allHashes())if(!x.has(j)){G=!1;break}}catch{G=!1}if(G){try{await n.rm(T(w,`${$}.pack`))}catch{}try{await n.rm(v)}catch{}}}let P=T(t.gitDir,"objects"),R;try{R=await n.readdir(P)}catch{R=[]}for(let y of R){if(y==="pack"||y==="info"||y.length!==2)continue;let $=T(P,y),v;try{v=await n.readdir($)}catch{continue}for(let G of v){let L=`${y}${G}`;x.has(L)&&await n.rm(T($,G))}try{(await n.readdir($)).length===0&&await n.rm($,{recursive:!0})}catch{}}}return{totalCount:c,deltaCount:d,packHash:g}}function gi(e,t,n=!1){let r=e-t,o=[`Enumerating objects: ${e}, done.`];return n&&o.push(`Counting objects: 100% (${e}/${e}), done.`),o.push("Delta compression using 1 thread.",`Compressing objects: 100% (${r}/${e}), done.`,`Writing objects: 100% (${e}/${e}), done.`,`Total ${e} (delta ${t}), reused 0 (delta 0), pack-reused 0`),o.join(`
|
|
384
384
|
`)}function uf(e,t){e.command("repack",{description:"Pack unpacked objects in a repository",options:{all:H().alias("a").describe("Pack all objects, including already-packed"),delete:H().alias("d").describe("After packing, remove redundant packs and loose objects")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o,i=await of(s),a=await pi({gitCtx:s,fs:r.fs,tips:i,cleanup:n.delete,all:n.all});return a?{stdout:"",stderr:`${gi(a.totalCount,a.deltaCount)}
|
|
385
385
|
`,exitCode:0}:{stdout:`Nothing new to pack.
|
|
386
386
|
`,stderr:"",exitCode:0}}})}function mf(e,t){e.command("gc",{description:"Cleanup unnecessary files and optimize the local repository",options:{aggressive:H().describe("More aggressively optimize the repository")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o;await ma(s),await dt(s);let i=await Wm(s);if(i.length>0){let a=n.aggressive?250:10,c=n.aggressive?250:50,f=await pi({gitCtx:s,fs:r.fs,tips:i,window:a,depth:c,cleanup:!0,all:!0});if(await qm(s.gitDir,r.fs),f)return{stdout:"",stderr:`${gi(f.totalCount,f.deltaCount,!0)}
|
|
387
387
|
`,exitCode:0}}return{stdout:"",stderr:"",exitCode:0}}})}var Bm=2160*60*60;async function Wm(e){let t=new Set,n=await X(e);n&&t.add(n);let r=await ge(e,"refs");for(let f of r)t.add(f.hash);let s=Math.floor(Date.now()/1e3)-Bm,i=T(e.gitDir,"logs");await e.fs.exists(i)&&await hf(e,i,i,s,t);let a=await q(e);for(let f of a.entries)t.add(f.hash);for(let f of["MERGE_HEAD","CHERRY_PICK_HEAD","ORIG_HEAD"]){let d=await _(e,f);d&&t.add(d)}let c=[];for(let f of t)await hn(e,f)&&c.push(f);return c}async function hf(e,t,n,r,o){let s=await e.fs.readdir(t);for(let i of s){let a=T(t,i),c=await e.fs.stat(a);if(c.isDirectory){await hf(e,a,n,r,o);try{(await e.fs.readdir(a)).length===0&&await e.fs.rm(a,{recursive:!0})}catch{}}else if(c.isFile){let f=a.slice(n.length+1),d=await ze(e,f);if(f==="refs/stash"){for(let l of d)l.newHash!==J&&o.add(l.newHash);continue}let u=d.filter(l=>l.timestamp>=r);await bn(e,f,u);for(let l of u)l.newHash!==J&&o.add(l.newHash)}}}async function qm(e,t){let n=T(e,"objects"),r;try{r=await t.readdir(n)}catch{return}for(let o of r)if(!(o==="pack"||o==="info"||o.length!==2))try{await t.rm(T(n,o),{recursive:!0})}catch{}}de();wn();function pf(e){e.command("init",{description:"Initialize a new repository",args:[B.string().name("directory").describe("The directory to initialize").optional()],options:{bare:H().describe("Create a bare repository"),initialBranch:Q.string().alias("b").describe("Name for the initial branch")},examples:["git init","git init --bare","git init my-project"],handler:async(t,n)=>{let r=t.initialBranch,o=t.directory?xt(n.cwd,t.directory):n.cwd;t.directory&&await n.fs.mkdir(o,{recursive:!0});let{ctx:s,reinit:i}=await hs(n.fs,o,{bare:t.bare,...r?{initialBranch:r}:{}}),a="";i&&r&&(a=`warning: re-init: ignored --initial-branch=${r}
|
|
388
388
|
`);let c=t.bare?"bare ":"";return{stdout:`${i?"Reinitialized existing":"Initialized empty"} ${c}Git repository in ${s.gitDir}/
|
|
389
|
-
`,stderr:a,exitCode:0}}})}
|
|
389
|
+
`,stderr:a,exitCode:0}}})}ne();rr();ne();function gf(e,t){let{hash:n,commit:r}=t,o="",s=0;for(;s<e.length;){if(e[s]==="%"){let i=e[s+1];if(i===void 0){o+="%",s++;continue}if((i==="a"||i==="c")&&s+2<e.length){let a=e[s+2],c=i==="a"?r.author:r.committer;switch(a){case"n":o+=c.name,s+=3;continue;case"e":case"E":o+=c.email,s+=3;continue;case"t":o+=c.timestamp.toString(),s+=3;continue;case"I":o+=Jm(c.timestamp,c.timezone),s+=3;continue;case"i":o+=Qm(c.timestamp,c.timezone),s+=3;continue;case"d":o+=Vt(c.timestamp,c.timezone),s+=3;continue;case"D":o+=eh(c.timestamp,c.timezone),s+=3;continue}}switch(i){case"H":o+=n,s+=2;continue;case"h":o+=z(n),s+=2;continue;case"T":o+=r.tree,s+=2;continue;case"t":o+=z(r.tree),s+=2;continue;case"P":o+=r.parents.join(" "),s+=2;continue;case"p":o+=r.parents.map(z).join(" "),s+=2;continue;case"s":o+=wi(r.message),s+=2;continue;case"b":o+=Km(r.message),s+=2;continue;case"B":o+=r.message.replace(/\n$/,""),s+=2;continue;case"d":if(t.decorations){let a=t.decorations(n);o+=a?` ${a}`:""}s+=2;continue;case"D":t.decorationsRaw&&(o+=t.decorationsRaw(n)),s+=2;continue;case"n":o+=`
|
|
390
390
|
`,s+=2;continue;case"%":o+="%",s+=2;continue;default:o+=`%${i}`,s+=2;continue}}o+=e[s],s++}return o}var wi=oe;function Km(e){let t=e.indexOf(`
|
|
391
391
|
|
|
392
392
|
`);return t===-1?"":e.slice(t+2).replace(/\n$/,"")}function wf(e){return e.startsWith("format:")?{formatStr:e.slice(7),preset:null}:e.startsWith("tformat:")?{formatStr:e.slice(8),preset:null}:["oneline","short","medium","full","fuller"].includes(e)?{formatStr:null,preset:e}:{formatStr:e,preset:null}}function bf(e,t,n,r=!1){let{hash:o,commit:s}=t,i=t.decorations?t.decorations(o):"";switch(e){case"oneline":{let a=r?z(o):o,c=wi(s.message);return i?`${a} ${i} ${c}`:`${a} ${c}`}case"short":{let a=[];return n||a.push(""),a.push(i?`commit ${o} ${i}`:`commit ${o}`),s.parents.length>=2&&a.push(`Merge: ${s.parents.map(z).join(" ")}`),a.push(`Author: ${s.author.name} <${s.author.email}>`),a.push(""),a.push(` ${wi(s.message)}`),a.join(`
|
|
@@ -410,8 +410,8 @@ ${ee.replace(/\n$/,"")}`),F.push(ie)}return{stdout:F.length>0?`${F.join(`
|
|
|
410
410
|
`).join("")}async function ih(e,t,n){let{fileStats:r}=await Gr(e,t,n);return r.sort((o,s)=>o.sortKey<s.sortKey?-1:o.sortKey>s.sortKey?1:0),Nr(r)}async function ah(e,t,n){let{fileStats:r}=await Gr(e,t,n),o=0,s=0;for(let a of r)o+=a.insertions,s+=a.deletions;let i=cr(r.length,o,s);return i?`${i}
|
|
411
411
|
`:""}async function ch(e,t,n){let r=[];for(let s of t)r.push({key:s.path,oldHash:s.oldHash,newHash:s.newHash,display:s.path});for(let s of n)r.push({key:s.newPath,oldHash:s.oldHash,newHash:s.newHash,display:Cn(s.oldPath,s.newPath)});r.sort((s,i)=>s.key<i.key?-1:s.key>i.key?1:0);let o="";for(let s of r){let i=s.oldHash?await re(e,s.oldHash):"",a=s.newHash?await re(e,s.newHash):"";if($e(i)||$e(a))o+=`- - ${s.display}
|
|
412
412
|
`;else{let c=Lt(i),f=Lt(a),d=it(c,f),u=0,l=0;for(let m of d)m.type==="insert"?u++:m.type==="delete"&&l++;o+=`${u} ${l} ${s.display}
|
|
413
|
-
`}}return o}async function fh(e,t,n){let r=[];for(let s of t)r.push({type:"diff",entry:s});for(let s of n)r.push({type:"rename",entry:s});r.sort((s,i)=>{let a=s.type==="diff"?s.entry.path:s.entry.newPath,c=i.type==="diff"?i.entry.path:i.entry.newPath;return a<c?-1:a>c?1:0});let o="";for(let s of r)if(s.type==="rename"){let i=s.entry,a=i.oldHash?await re(e,i.oldHash):"",c=i.newHash?await re(e,i.newHash):"";o+=yt({path:i.oldPath,oldContent:a,newContent:c,oldMode:i.oldMode,newMode:i.newMode,oldHash:i.oldHash,newHash:i.newHash,renameTo:i.newPath,similarity:i.similarity})}else{let i=s.entry,a=i.oldHash?await re(e,i.oldHash):"",c=i.newHash?await re(e,i.newHash):"";o+=yt({path:i.path,oldContent:a,newContent:c,oldMode:i.oldMode,newMode:i.newMode,oldHash:i.oldHash,newHash:i.newHash,isNew:i.status==="added",isDeleted:i.status==="deleted"})}return o}
|
|
414
|
-
`,x=o.passthrough.length>0?o.passthrough.map(R=>{let y=r.cwd!==c?dh(c,r.cwd):"";return Ge(R,y)}):null,C=[];if(f)for(let R of b.entries){if(x&&!be(x,R.path))continue;let y=w?R.stage>0?"M":"H":null;C.push(Cf(R,h,y))}if(m&&!f)for(let R of b.entries)R.stage!==0&&(x&&!be(x,R.path)||C.push(Cf(R,!0,w?"M":null)));if(d||u){let R=await lh(i,c,b);for(let{path:y,status:$}of R){if($==="modified"&&!d||$==="deleted"&&!u||x&&!be(x,y))continue;let v=w?$==="deleted"?"R":"C":null;C.push(v?`${v} ${y}`:y)}}if(l){let R=await uh(i,c,b,p);for(let y of R)x&&!be(x,y)||C.push(w?`? ${y}`:y)}return{stdout:C.length>0?C.join(E)+E:"",stderr:"",exitCode:0}}})}function Cf(e,t,n){if(t){let r=e.mode.toString(8).padStart(6,"0");return`${n?`${n} `:""}${r} ${e.hash} ${e.stage} ${e.path}`}return n?`${n} ${e.path}`:e.path}function dh(e,t){return t===e?"":t.startsWith(`${e}/`)?t.slice(e.length+1):""}async function lh(e,t,n){let r=[];for(let o of n.entries){if(o.stage!==0)continue;let s=T(t,o.path);if(!await e.fs.exists(s)){r.push({path:o.path,status:"deleted"});continue}let a=await ot(e.fs,s);if(!a.isFile&&!a.isSymbolicLink)continue;await yn(e.fs,s)!==o.hash&&r.push({path:o.path,status:"modified"})}return r}async function uh(e,t,n,r){let o=new Set(n.entries.map(i=>i.path));return(await Ze(e,t,"",{skipIgnore:!r})).filter(i=>!o.has(i))}
|
|
413
|
+
`}}return o}async function fh(e,t,n){let r=[];for(let s of t)r.push({type:"diff",entry:s});for(let s of n)r.push({type:"rename",entry:s});r.sort((s,i)=>{let a=s.type==="diff"?s.entry.path:s.entry.newPath,c=i.type==="diff"?i.entry.path:i.entry.newPath;return a<c?-1:a>c?1:0});let o="";for(let s of r)if(s.type==="rename"){let i=s.entry,a=i.oldHash?await re(e,i.oldHash):"",c=i.newHash?await re(e,i.newHash):"";o+=yt({path:i.oldPath,oldContent:a,newContent:c,oldMode:i.oldMode,newMode:i.newMode,oldHash:i.oldHash,newHash:i.newHash,renameTo:i.newPath,similarity:i.similarity})}else{let i=s.entry,a=i.oldHash?await re(e,i.oldHash):"",c=i.newHash?await re(e,i.newHash):"";o+=yt({path:i.path,oldContent:a,newContent:c,oldMode:i.oldMode,newMode:i.newMode,oldHash:i.oldHash,newHash:i.newHash,isNew:i.status==="added",isDeleted:i.status==="deleted"})}return o}ne();Ee();de();Ln();Je();function Pf(e,t){e.command("ls-files",{description:"Show information about files in the index and the working tree",options:{cached:H().alias("c").describe("Show cached files (default)"),modified:H().alias("m").describe("Show modified files"),deleted:H().alias("d").describe("Show deleted files"),others:H().alias("o").describe("Show other (untracked) files"),unmerged:H().alias("u").describe("Show unmerged files"),stage:H().alias("s").describe("Show staged contents' mode, hash, and stage number"),"exclude-standard":H().describe("Add standard git exclusions (.gitignore, info/exclude, core.excludesFile)"),"nul-terminate":H().alias("z").describe("Use \\0 as line terminator instead of \\n"),"show-tags":H().alias("t").describe("Show status tags")},handler:async(n,r,o)=>{let s=await U(r.fs,r.cwd,t);if(S(s))return s;let i=s,a=qe(i);if(a)return a;let c=i.workTree,f=n.cached,d=n.modified,u=n.deleted,l=n.others,m=n.unmerged,h=n.stage,p=n["exclude-standard"],g=n["nul-terminate"],w=n["show-tags"];f||d||u||l||m||(f=!0);let b=await q(i),E=g?"\0":`
|
|
414
|
+
`,x=o.passthrough.length>0?o.passthrough.map(R=>{let y=r.cwd!==c?dh(c,r.cwd):"";return Ge(R,y)}):null,C=[];if(f)for(let R of b.entries){if(x&&!be(x,R.path))continue;let y=w?R.stage>0?"M":"H":null;C.push(Cf(R,h,y))}if(m&&!f)for(let R of b.entries)R.stage!==0&&(x&&!be(x,R.path)||C.push(Cf(R,!0,w?"M":null)));if(d||u){let R=await lh(i,c,b);for(let{path:y,status:$}of R){if($==="modified"&&!d||$==="deleted"&&!u||x&&!be(x,y))continue;let v=w?$==="deleted"?"R":"C":null;C.push(v?`${v} ${y}`:y)}}if(l){let R=await uh(i,c,b,p);for(let y of R)x&&!be(x,y)||C.push(w?`? ${y}`:y)}return{stdout:C.length>0?C.join(E)+E:"",stderr:"",exitCode:0}}})}function Cf(e,t,n){if(t){let r=e.mode.toString(8).padStart(6,"0");return`${n?`${n} `:""}${r} ${e.hash} ${e.stage} ${e.path}`}return n?`${n} ${e.path}`:e.path}function dh(e,t){return t===e?"":t.startsWith(`${e}/`)?t.slice(e.length+1):""}async function lh(e,t,n){let r=[];for(let o of n.entries){if(o.stage!==0)continue;let s=T(t,o.path);if(!await e.fs.exists(s)){r.push({path:o.path,status:"deleted"});continue}let a=await ot(e.fs,s);if(!a.isFile&&!a.isSymbolicLink)continue;await yn(e.fs,s)!==o.hash&&r.push({path:o.path,status:"modified"})}return r}async function uh(e,t,n,r){let o=new Set(n.entries.map(i=>i.path));return(await Ze(e,t,"",{skipIgnore:!r})).filter(i=>!o.has(i))}ne();Ee();se();Le();ue();en();Ie();function Rf(e,t){e.command("merge",{description:"Join two or more development histories together",args:[B.string().name("branch").describe("Branch to merge into the current branch").optional()],options:{abort:H().describe("Abort the current in-progress merge"),continue:H().describe("Continue the merge after conflict resolution"),noFf:H().describe("Create a merge commit even when fast-forward is possible"),ffOnly:H().describe("Refuse to merge unless fast-forward is possible"),squash:H().describe("Apply merge result to worktree/index without creating a merge commit"),edit:H().describe("Edit the merge message (no-op, accepted for compatibility)"),message:Q.string().alias("m").describe("Merge commit message")},transformArgs:n=>n.filter(r=>r!=="--ff"),handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o;if(n.abort)return gh(s,r.env);if(n.continue)return ph(s,r.env,t);let i=n.branch;if(!i)return O("you must specify a branch to merge");let a=await Ke(s);if(S(a))return a;let c=await q(s),f=sn(c,"Merging");if(f)return f;if(await _(s,"MERGE_HEAD"))return O(`You have not concluded your merge (MERGE_HEAD exists).
|
|
415
415
|
Please, commit your changes before you merge.`);if(await _(s,"CHERRY_PICK_HEAD"))return O(`You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).
|
|
416
416
|
Please, commit your changes before you merge.`);let l=await Be(s,i);if(!l)return N(`merge: ${i} - not something we can merge
|
|
417
417
|
`);let m=await Ne(s,l),h=await At(s,a,m),p=h[0]??null;if(h.length===0)return O("refusing to merge unrelated histories");if(p===m)return{stdout:`Already up to date.${n.squash?" (nothing to squash)":""}
|
|
@@ -425,19 +425,19 @@ hint: git rebase
|
|
|
425
425
|
hint:
|
|
426
426
|
hint: Disable this message with "git config set advice.diverging false"
|
|
427
427
|
fatal: Not possible to fast-forward, aborting.
|
|
428
|
-
`,128);if(await _(s,"REVERT_HEAD")&&await Tt(s),g&&!n.squash){let b=await Z(s),E=await Ks(s,a,m);if(E.exitCode===0&&n.message&&(E.stdout=E.stdout.replace(/^Fast-forward$/m,"Fast-forward (no commit created; -m option ignored)")),E.exitCode===0){let x=b?.type==="symbolic"?b.target:"HEAD";await
|
|
428
|
+
`,128);if(await _(s,"REVERT_HEAD")&&await Tt(s),g&&!n.squash){let b=await Z(s),E=await Ks(s,a,m);if(E.exitCode===0&&n.message&&(E.stdout=E.stdout.replace(/^Fast-forward$/m,"Fast-forward (no commit created; -m option ignored)")),E.exitCode===0){let x=b?.type==="symbolic"?b.target:"HEAD";await te(s,r.env,x,a,m,`merge ${i}: Fast-forward${n.message?" (no commit created; -m option ignored)":""}`,b?.type==="symbolic"),await t?.hooks?.emitPost("post-merge",{headHash:a,theirsHash:m,strategy:"fast-forward",commitHash:null})}return E}let w=n.message,k=w?w.endsWith(`
|
|
429
429
|
`)?w:`${w}
|
|
430
|
-
`:void 0;return n.squash?hh(s,a,m,i,r.env,t,k):mh(s,a,m,i,r.env,n.noFf,t,k)}})}async function mh(e,t,n,r,o,s=!1,i,a){let c=await M(e,t),f=await Z(e),d=f?.type==="symbolic"?we(f.target):"HEAD",u={a:"HEAD",b:r},l=await Ur(e,t,n,u),m=await dn(e,l,c.tree,{labels:u,errorExitCode:2,operationName:"merge"});if(!m.ok)return m.failureKind==="staged"&&f?.type==="symbolic"&&await
|
|
430
|
+
`:void 0;return n.squash?hh(s,a,m,i,r.env,t,k):mh(s,a,m,i,r.env,n.noFf,t,k)}})}async function mh(e,t,n,r,o,s=!1,i,a){let c=await M(e,t),f=await Z(e),d=f?.type==="symbolic"?we(f.target):"HEAD",u={a:"HEAD",b:r},l=await Ur(e,t,n,u),m=await dn(e,l,c.tree,{labels:u,errorExitCode:2,operationName:"merge"});if(!m.ok)return m.failureKind==="staged"&&f?.type==="symbolic"&&await te(e,o,"HEAD",t,t,`merge ${r}: updating HEAD`),m;if(l.conflicts.length>0){await V(e,"MERGE_HEAD",n),await V(e,"ORIG_HEAD",t);let C=a??await fn(e,r,d);if(i?.hooks){let y={message:C,treeHash:m.mergedTreeHash,headHash:t,theirsHash:n},$=await i.hooks.emitPre("merge-msg",y);if($)return{stdout:"",stderr:$.message??"",exitCode:1};C=y.message}let P=Ft({version:2,entries:l.entries}).sort();return C+=`
|
|
431
431
|
# Conflicts:
|
|
432
432
|
${P.map(y=>`# ${y}`).join(`
|
|
433
433
|
`)}
|
|
434
434
|
`,await Pe(e,"MERGE_MSG",C),await Pe(e,"MERGE_MODE",s?"no-ff":""),{stdout:`${[...l.messages,"Automatic merge failed; fix conflicts and then commit the result."].join(`
|
|
435
435
|
`)}
|
|
436
|
-
`,stderr:"",exitCode:1}}let h=m.mergedTreeHash,p=await Kt(e,o);if(S(p))return p;let g=await Ve(e,o);if(S(g))return g;let w=a??await fn(e,r,d);if(i?.hooks){let C={message:w,treeHash:h,headHash:t,theirsHash:n},P=await i.hooks.emitPre("merge-msg",C);if(P)return{stdout:"",stderr:P.message??"",exitCode:1};w=C.message}if(i?.hooks){let C=await i.hooks.emitPre("pre-merge-commit",{mergeMessage:w,treeHash:h,headHash:t,theirsHash:n});if(C)return{stdout:"",stderr:C.message??"",exitCode:1}}let k=await ft(e,h,[t,n],p,g,w),b=f?.type==="symbolic"?f.target:"HEAD";await
|
|
436
|
+
`,stderr:"",exitCode:1}}let h=m.mergedTreeHash,p=await Kt(e,o);if(S(p))return p;let g=await Ve(e,o);if(S(g))return g;let w=a??await fn(e,r,d);if(i?.hooks){let C={message:w,treeHash:h,headHash:t,theirsHash:n},P=await i.hooks.emitPre("merge-msg",C);if(P)return{stdout:"",stderr:P.message??"",exitCode:1};w=C.message}if(i?.hooks){let C=await i.hooks.emitPre("pre-merge-commit",{mergeMessage:w,treeHash:h,headHash:t,theirsHash:n});if(C)return{stdout:"",stderr:C.message??"",exitCode:1}}let k=await ft(e,h,[t,n],p,g,w),b=f?.type==="symbolic"?f.target:"HEAD";await te(e,o,b,t,k,`merge ${r}: Merge made by the 'ort' strategy.`,f?.type==="symbolic"),await i?.hooks?.emitPost("post-merge",{headHash:t,theirsHash:n,strategy:"three-way",commitHash:k});let E=await Tn(e,c.tree,h);return{stdout:`${l.messages.length>0?`${l.messages.join(`
|
|
437
437
|
`)}
|
|
438
438
|
`:""}Merge made by the 'ort' strategy.
|
|
439
439
|
${E}`,stderr:"",exitCode:0}}async function hh(e,t,n,r,o,s,i){let a=await M(e,t),c=await Z(e),f=c?.type==="symbolic"?we(c.target):"HEAD",d={a:"HEAD",b:r},u=await At(e,t,n),l=u.length>0&&u[0]===t,m=l?`Updating ${z(t)}..${z(n)}
|
|
440
|
-
`:"",h=await Ur(e,t,n,d),p=await dn(e,h,a.tree,{labels:d,errorExitCode:l?1:2,operationName:"merge",skipStagedChangeCheck:l});if(!p.ok){!l&&p.failureKind==="staged"&&c?.type==="symbolic"&&await
|
|
440
|
+
`:"",h=await Ur(e,t,n,d),p=await dn(e,h,a.tree,{labels:d,errorExitCode:l?1:2,operationName:"merge",skipStagedChangeCheck:l});if(!p.ok){!l&&p.failureKind==="staged"&&c?.type==="symbolic"&&await te(e,o,"HEAD",t,t,`merge ${r}: updating HEAD`);let x=p;return m&&(x.stdout=m+x.stdout),x}if(h.conflicts.length>0){await V(e,"ORIG_HEAD",t);let x=i??await fn(e,r,f);return x=`Squashed commit of the following:
|
|
441
441
|
|
|
442
442
|
${x}`,await Pe(e,"MERGE_MSG",x),await Pe(e,"MERGE_MODE",""),{stdout:`${[...h.messages,"Squash commit -- not updating HEAD","Automatic merge failed; fix conflicts and then commit the result."].join(`
|
|
443
443
|
`)}
|
|
@@ -448,9 +448,9 @@ ${x}`,await Pe(e,"MERGE_MSG",x),await Pe(e,"MERGE_MODE",""),{stdout:`${[...h.mes
|
|
|
448
448
|
${b}`,await Pe(e,"MERGE_MSG",b),{stdout:`${l?`${m}Fast-forward
|
|
449
449
|
`:""}${k}Squash commit -- not updating HEAD
|
|
450
450
|
${l?w:""}`,stderr:l?"":`Automatic merge went well; stopped before committing as requested
|
|
451
|
-
`,exitCode:0}}async function ph(e,t,n){let r=await _(e,"MERGE_HEAD");if(!r)return O("There is no merge in progress (MERGE_HEAD missing).");let o=await q(e),s=sn(o,"Committing");if(s)return s;let i=await Ke(e);if(S(i))return i;let a=await M(e,i),c=await Ce(e,"MERGE_MSG");if(c)c=Hr(c);else{let x=await Z(e),C=x?.type==="symbolic"?we(x.target):"HEAD";c=await fn(e,"unknown",C)}let f=ve(o),d=await Ae(e,f),u=await Kt(e,t);if(S(u))return u;let l=await Ve(e,t);if(S(l))return l;let m=Ot(c);if(n?.hooks){let x={message:m,treeHash:d,headHash:i,theirsHash:r},C=await n.hooks.emitPre("merge-msg",x);if(C)return{stdout:"",stderr:C.message??"",exitCode:1};m=x.message}if(n?.hooks){let x=await n.hooks.emitPre("pre-merge-commit",{mergeMessage:m,treeHash:d,headHash:i,theirsHash:r});if(x)return{stdout:"",stderr:x.message??"",exitCode:1}}let h=await ft(e,d,[i,r],u,l,m);await Ar(e);let p=await Z(e),g=oe(m),w=p?.type==="symbolic"?p.target:"HEAD";await
|
|
452
|
-
${k}`,stderr:"",exitCode:0}}async function gh(e,t){return xn(e,t,{operationRef:"MERGE_HEAD",noOpError:O("There is no merge to abort (MERGE_HEAD missing)."),operationName:"merge",clearState:Ar})}
|
|
453
|
-
`);let f=c[c.length-1],d=c.slice(0,-1),u=xt(r.cwd,f),l=st(a,u);if(l.startsWith(".."))return O(`'${f}' is outside repository at '${a}'`);let m=await q(s),h=await r.fs.exists(u),p=h&&(await r.fs.stat(u)).isDirectory;if(d.length>1&&!p)return O(h?`destination '${f}' is not a directory`:`destination directory '${f}' does not exist`);let g=[];for(let w of d){let k=xt(r.cwd,w),b=st(a,k);if(b.startsWith("..")){if(n.skip)continue;return O(`'${w}' is outside repository at '${a}'`)}if(!await r.fs.exists(k)){if(n.skip)continue;return O(`bad source, source=${b}, destination=${l}`)}let C=(await r.fs.stat(k)).isDirectory;if(!(C?m.entries.some(G=>G.path===b||G.path.startsWith(`${b}/`)):m.entries.some(G=>G.path===b&&G.stage===0))){let G=!C&&m.entries.some(L=>L.path===b&&L.stage>0);if(n.skip)continue;return O(G?`conflicted, source=${b}, destination=${l}`:`not under version control, source=${b}, destination=${l}`)}let R,y;if(p){let G=gr(b);R=l===""||l==="."?G:`${l}/${G}`,y=T(u,G)}else R=l,y=u;if(await r.fs.exists(y)&&!n.force)if((await r.fs.stat(y)).isDirectory){let L=gr(b);R=`${R}/${L}`,y=T(y,L)}else{if(n.skip)continue;return O(`destination exists, source=${b}, destination=${R}`)}if(b===R){if(n.skip)continue;return O(`can not move directory into itself, source=${b}, destination=${R}`)}let v=Nt(y);if(!await r.fs.exists(v)){if(n.skip)continue;return O(`renaming '${b}' failed: No such file or directory`)}if(C){let G=`${b}/`,L=m.entries.filter(Y=>Y.path.startsWith(G)&&Y.stage===0);for(let Y of L){let j=Y.path.slice(b.length),I=R+j,A=y+j;g.push({srcRel:Y.path,dstRel:I,srcAbs:T(a,Y.path),dstAbs:A})}}else g.push({srcRel:b,dstRel:R,srcAbs:k,dstAbs:y})}if(g.length===0)return{stdout:"",stderr:"",exitCode:0};if(n["dry-run"])return{stdout:"",stderr:"",exitCode:0};for(let w of g){let k=Nt(w.dstAbs);await r.fs.exists(k)||await r.fs.mkdir(k,{recursive:!0});let b=await r.fs.readFileBuffer(w.srcAbs);await r.fs.writeFile(w.dstAbs,b),await r.fs.rm(w.srcAbs);let E=ss(m,w.srcRel,0);if(E){m=nt(m,w.srcRel);let x={...E,path:w.dstRel};m=ht(m,x)}}for(let w of g)await _n(r.fs,Nt(w.srcAbs),a);return await ce(s,m),{stdout:"",stderr:"",exitCode:0}}})}
|
|
451
|
+
`,exitCode:0}}async function ph(e,t,n){let r=await _(e,"MERGE_HEAD");if(!r)return O("There is no merge in progress (MERGE_HEAD missing).");let o=await q(e),s=sn(o,"Committing");if(s)return s;let i=await Ke(e);if(S(i))return i;let a=await M(e,i),c=await Ce(e,"MERGE_MSG");if(c)c=Hr(c);else{let x=await Z(e),C=x?.type==="symbolic"?we(x.target):"HEAD";c=await fn(e,"unknown",C)}let f=ve(o),d=await Ae(e,f),u=await Kt(e,t);if(S(u))return u;let l=await Ve(e,t);if(S(l))return l;let m=Ot(c);if(n?.hooks){let x={message:m,treeHash:d,headHash:i,theirsHash:r},C=await n.hooks.emitPre("merge-msg",x);if(C)return{stdout:"",stderr:C.message??"",exitCode:1};m=x.message}if(n?.hooks){let x=await n.hooks.emitPre("pre-merge-commit",{mergeMessage:m,treeHash:d,headHash:i,theirsHash:r});if(x)return{stdout:"",stderr:x.message??"",exitCode:1}}let h=await ft(e,d,[i,r],u,l,m);await Ar(e);let p=await Z(e),g=oe(m),w=p?.type==="symbolic"?p.target:"HEAD";await te(e,t,w,i,h,`commit (merge): ${g}`,p?.type==="symbolic"),await n?.hooks?.emitPost("post-merge",{headHash:i,theirsHash:r,strategy:"three-way",commitHash:h});let k=await Tn(e,a.tree,d),b=p?.type==="symbolic"?we(p.target):"detached HEAD";return{stdout:`${It(b,h,c)}
|
|
452
|
+
${k}`,stderr:"",exitCode:0}}async function gh(e,t){return xn(e,t,{operationRef:"MERGE_HEAD",noOpError:O("There is no merge to abort (MERGE_HEAD missing)."),operationName:"merge",clearState:Ar})}ne();Ee();de();Je();function $f(e,t){e.command("mv",{description:"Move or rename a file, directory, or symlink",args:[B.string().name("sources").describe("Source file(s) or directory").optional().variadic()],options:{force:H().alias("f").describe("Force renaming even if target exists"),"dry-run":H().alias("n").describe("Do nothing; only show what would happen"),skip:H().alias("k").describe("Skip move/rename actions that would lead to errors")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o,i=qe(s);if(i)return i;let a=s.workTree,c=n.sources;if(c.length<2)return N(`usage: git mv [<options>] <source>... <destination>
|
|
453
|
+
`);let f=c[c.length-1],d=c.slice(0,-1),u=xt(r.cwd,f),l=st(a,u);if(l.startsWith(".."))return O(`'${f}' is outside repository at '${a}'`);let m=await q(s),h=await r.fs.exists(u),p=h&&(await r.fs.stat(u)).isDirectory;if(d.length>1&&!p)return O(h?`destination '${f}' is not a directory`:`destination directory '${f}' does not exist`);let g=[];for(let w of d){let k=xt(r.cwd,w),b=st(a,k);if(b.startsWith("..")){if(n.skip)continue;return O(`'${w}' is outside repository at '${a}'`)}if(!await r.fs.exists(k)){if(n.skip)continue;return O(`bad source, source=${b}, destination=${l}`)}let C=(await r.fs.stat(k)).isDirectory;if(!(C?m.entries.some(G=>G.path===b||G.path.startsWith(`${b}/`)):m.entries.some(G=>G.path===b&&G.stage===0))){let G=!C&&m.entries.some(L=>L.path===b&&L.stage>0);if(n.skip)continue;return O(G?`conflicted, source=${b}, destination=${l}`:`not under version control, source=${b}, destination=${l}`)}let R,y;if(p){let G=gr(b);R=l===""||l==="."?G:`${l}/${G}`,y=T(u,G)}else R=l,y=u;if(await r.fs.exists(y)&&!n.force)if((await r.fs.stat(y)).isDirectory){let L=gr(b);R=`${R}/${L}`,y=T(y,L)}else{if(n.skip)continue;return O(`destination exists, source=${b}, destination=${R}`)}if(b===R){if(n.skip)continue;return O(`can not move directory into itself, source=${b}, destination=${R}`)}let v=Nt(y);if(!await r.fs.exists(v)){if(n.skip)continue;return O(`renaming '${b}' failed: No such file or directory`)}if(C){let G=`${b}/`,L=m.entries.filter(Y=>Y.path.startsWith(G)&&Y.stage===0);for(let Y of L){let j=Y.path.slice(b.length),I=R+j,A=y+j;g.push({srcRel:Y.path,dstRel:I,srcAbs:T(a,Y.path),dstAbs:A})}}else g.push({srcRel:b,dstRel:R,srcAbs:k,dstAbs:y})}if(g.length===0)return{stdout:"",stderr:"",exitCode:0};if(n["dry-run"])return{stdout:"",stderr:"",exitCode:0};for(let w of g){let k=Nt(w.dstAbs);await r.fs.exists(k)||await r.fs.mkdir(k,{recursive:!0});let b=await r.fs.readFileBuffer(w.srcAbs);await r.fs.writeFile(w.dstAbs,b),await r.fs.rm(w.srcAbs);let E=ss(m,w.srcRel,0);if(E){m=nt(m,w.srcRel);let x={...E,path:w.dstRel};m=ht(m,x)}}for(let w of g)await _n(r.fs,Nt(w.srcAbs),a);return await ce(s,m),{stdout:"",stderr:"",exitCode:0}}})}ne();Xe();ln();Ee();se();de();at();Le();ue();function If(e,t){e.command("pull",{description:"Fetch from and integrate with another repository",args:[B.string().name("remote").describe("Remote to pull from").optional(),B.string().name("branch").describe("Remote branch").optional()],options:{rebase:H().alias("r").describe("Rebase instead of merge"),noRebase:H().describe("Merge instead of rebase"),ffOnly:H().describe("Only fast-forward"),noFf:H().describe("Create a merge commit even for fast-forwards")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o,i=await Ke(s);if(S(i))return i;let a=await q(s);if(Pt(a))return N(`error: Pulling is not possible because you have unmerged files.
|
|
454
454
|
`,128);let c=n.remote,f=n.branch;if(!c){let ae=await Z(s);if(ae?.type==="symbolic"){let De=ae.target.startsWith("refs/heads/")?ae.target.slice(11):ae.target,Xn=(await he(s))[`branch "${De}"`];Xn&&(c=Xn.remote||"origin",!f&&Xn.merge&&(f=Xn.merge.startsWith("refs/heads/")?Xn.merge.slice(11):Xn.merge))}}c=c||"origin";let d;try{d=await lr(s,c,r.env)}catch(ae){let De=ae instanceof Error?ae.message:"";if(De.startsWith("network"))return O(De);throw ae}if(!d)return O(`'${c}' does not appear to be a git repository`);let{transport:u,config:l}=d,m=f??null;if(t?.hooks){let ae=await t.hooks.emitPre("pre-pull",{remote:c,branch:m});if(ae)return{stdout:"",stderr:ae.message??"",exitCode:1}}let h=Yn(l.fetchRefspec),p=await u.advertiseRefs();if(p.length===0)return O("Couldn't find remote ref HEAD");let w=(await ge(s)).map(ae=>ae.hash),k=await _(s,"HEAD");k&&w.push(k);let b=[],E=new Set,x=[];for(let ae of p){if(ae.name==="HEAD")continue;let De=no(h,ae.name);De!==null&&(x.push({remote:ae,localRef:De}),E.has(ae.hash)||(E.add(ae.hash),b.push(ae.hash)))}let C=new Set(w),P=b.filter(ae=>!C.has(ae));P.length>0&&await u.fetch(P,w);let R=await _t(s,r.env);for(let ae of x){let De=await _(s,ae.localRef);await V(s,ae.localRef,ae.remote.hash),await Ue(s,ae.localRef,{oldHash:De??J,newHash:ae.remote.hash,name:R.name,email:R.email,timestamp:R.timestamp,tz:R.tz,message:De?"pull":"pull: storing head"})}let y=null;if(f){let ae=p.find(De=>De.name===`refs/heads/${f}`);if(ae)y=ae.hash;else return O(`Couldn't find remote ref refs/heads/${f}`)}else{let ae=p.find(De=>De.name==="HEAD");ae&&(y=ae.hash)}if(y&&await r.fs.writeFile(T(s.gitDir,"FETCH_HEAD"),`${y} ${l.url}
|
|
455
455
|
`),!y)return O("Could not determine remote HEAD");let $=y;if(i===$)return await t?.hooks?.emitPost("post-pull",{remote:c,branch:m,strategy:"up-to-date",commitHash:null}),{stdout:`Already up to date.
|
|
456
456
|
`,stderr:"",exitCode:0};let v=await At(s,i,$),G=v[0]??null;if(v.length===0)return O("refusing to merge unrelated histories");if(G===$)return await t?.hooks?.emitPost("post-pull",{remote:c,branch:m,strategy:"up-to-date",commitHash:null}),{stdout:`Already up to date.
|
|
@@ -463,7 +463,7 @@ ${De.map(Sn=>`# ${Sn}`).join(`
|
|
|
463
463
|
`,stderr:"",exitCode:1}}let K=D.mergedTreeHash,ie=await Kt(s,r.env);if(S(ie))return ie;let ee=await Ve(s,r.env);if(S(ee))return ee;let me=await fn(s,I,j);if(t?.hooks){let ae={message:me,treeHash:K,headHash:i,theirsHash:$},De=await t.hooks.emitPre("merge-msg",ae);if(De)return{stdout:"",stderr:De.message??"",exitCode:1};me=ae.message;let Sn=await t.hooks.emitPre("pre-merge-commit",{mergeMessage:me,treeHash:K,headHash:i,theirsHash:$});if(Sn)return{stdout:"",stderr:Sn.message??"",exitCode:1}}let je=await ft(s,K,[i,$],ie,ee,me);await t?.hooks?.emitPost("post-merge",{headHash:i,theirsHash:$,strategy:"three-way",commitHash:je}),await t?.hooks?.emitPost("post-pull",{remote:c,branch:m,strategy:"three-way",commitHash:je});let Xt=Y?.type==="symbolic"?Y.target:"HEAD",Se="pull: Merge made by the 'ort' strategy.";await Ue(s,Xt,{oldHash:i,newHash:je,name:R.name,email:R.email,timestamp:R.timestamp,tz:R.tz,message:Se}),Y?.type==="symbolic"&&await Ue(s,"HEAD",{oldHash:i,newHash:je,name:R.name,email:R.email,timestamp:R.timestamp,tz:R.tz,message:Se});let Xr=await Tn(s,F.tree,K);return{stdout:`${W.messages.length>0?`${W.messages.join(`
|
|
464
464
|
`)}
|
|
465
465
|
`:""}Merge made by the 'ort' strategy.
|
|
466
|
-
${Xr}`,stderr:"",exitCode:0}}})}
|
|
466
|
+
${Xr}`,stderr:"",exitCode:0}}})}ne();Xe();at();ue();function Of(e,t){e.command("push",{description:"Update remote refs along with associated objects",args:[B.string().name("remote").describe("Remote to push to").optional(),B.string().name("refspec").describe("Refspec(s) to push").optional().variadic()],options:{force:H().alias("f").describe("Force push"),"set-upstream":H().alias("u").describe("Set upstream tracking reference"),all:H().describe("Push all branches"),delete:H().alias("d").describe("Delete remote refs"),tags:H().describe("Push all tags")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o,i=n.remote||"origin",a;try{a=await lr(s,i,r.env)}catch(b){let E=b instanceof Error?b.message:"";if(E.startsWith("network"))return O(E);throw b}if(!a)return O(`'${i}' does not appear to be a git repository`);let{transport:c,config:f}=a,d=n.force,u=await c.advertiseRefs(),l=new Map;for(let b of u)l.set(b.name,b.hash);let m=[],h=n.refspec;if(n.delete){let b=h&&h.length>0?h:[];if(b.length===0)return O("--delete requires a ref argument");for(let E of b){let x=E.startsWith("refs/")?E:`refs/heads/${E}`,C=l.get(x)??null;if(!C)return N(`error: unable to delete '${E}': remote ref does not exist
|
|
467
467
|
`);m.push({name:x,oldHash:C,newHash:J,ok:d})}}else if(n.all){let b=await ge(s,"refs/heads");for(let E of b){let x=E.name,C=l.get(x)??null;m.push({name:x,oldHash:C,newHash:E.hash,ok:d})}}else if(n.tags){let b=await ge(s,"refs/tags");for(let E of b){let x=l.get(E.name)??null;x!==E.hash&&m.push({name:E.name,oldHash:x,newHash:E.hash,ok:d})}}else if(h&&h.length>0)for(let b of h){let E=Yn(b),x=await wh(s,E.src);if(!x)return N(`error: src refspec '${E.src}' does not match any
|
|
468
468
|
`);let C=E.dst.startsWith("refs/")?E.dst:`refs/heads/${E.dst}`,P=l.get(C)??null;m.push({name:C,oldHash:P,newHash:x,ok:d||E.force})}else{let b=await Z(s);if(!b||b.type!=="symbolic")return O("You are not currently on a branch.");let E=b.target,x=await X(s);if(!x)return N(`error: src refspec does not match any
|
|
469
469
|
`);let C=l.get(E)??null;m.push({name:E,oldHash:C,newHash:x,ok:d})}if(m.length===0)return{stdout:`Everything up-to-date
|
|
@@ -473,7 +473,7 @@ ${Xr}`,stderr:"",exitCode:0}}})}te();Xe();at();ue();function Of(e,t){e.command("
|
|
|
473
473
|
`);else if(b.newHash===J)g.push(` - [deleted] ${E}
|
|
474
474
|
`);else{let x=z(b.oldHash),C=z(b.newHash);g.push(` ${x}..${C} ${E} -> ${E}
|
|
475
475
|
`)}}if(n["set-upstream"]&&!w){let b=await Z(s);if(b?.type==="symbolic"){let E=b.target.startsWith("refs/heads/")?b.target.slice(11):b.target,x=await he(s);x[`branch "${E}"`]={remote:i,merge:`refs/heads/${E}`},await Ye(s,x),g.push(`branch '${E}' set up to track '${i}/${E}'.
|
|
476
|
-
`)}}let k={stdout:"",stderr:g.join(""),exitCode:w?1:0};return w||await t?.hooks?.emitPost("post-push",{remote:i,url:f.url,refs:m.map(b=>({srcRef:b.newHash===J?null:b.name,srcHash:b.newHash===J?null:b.newHash,dstRef:b.name,dstHash:b.oldHash,force:!!b.ok,delete:b.newHash===J}))}),k}})}async function wh(e,t){if(t.startsWith("refs/"))return _(e,t);let n=await _(e,`refs/heads/${t}`);if(n)return n;let r=await _(e,`refs/tags/${t}`);return r||(t==="HEAD"?X(e):null)}
|
|
476
|
+
`)}}let k={stdout:"",stderr:g.join(""),exitCode:w?1:0};return w||await t?.hooks?.emitPost("post-push",{remote:i,url:f.url,refs:m.map(b=>({srcRef:b.newHash===J?null:b.name,srcHash:b.newHash===J?null:b.newHash,dstRef:b.name,dstHash:b.oldHash,force:!!b.ok,delete:b.newHash===J}))}),k}})}async function wh(e,t){if(t.startsWith("refs/"))return _(e,t);let n=await _(e,`refs/heads/${t}`);if(n)return n;let r=await _(e,`refs/tags/${t}`);return r||(t==="HEAD"?X(e):null)}ne();Ee();se();ne();se();Jt();Dn();Ie();async function yi(e,t){let n=await pe(e,t);if(n.type!=="commit")return null;let r=Ut(n.content),o=null;if(r.parents.length>0&&r.parents[0]){let f=await pe(e,r.parents[0]);f.type==="commit"&&(o=Ut(f.content).tree)}let s=await _e(e,o,r.tree);if(s.length===0)return null;let i=mn(),a=!1,c=[...s].sort((f,d)=>ke(f.path,d.path));for(let f of c){let d="",u="";if(f.oldHash)try{let m=await pe(e,f.oldHash);d=new TextDecoder().decode(m.content)}catch{}if(f.newHash)try{let m=await pe(e,f.newHash);u=new TextDecoder().decode(m.content)}catch{}let l=yt({path:f.path,oldContent:d,newContent:u,oldMode:f.oldMode,newMode:f.newMode});if(l)for(let m of l.split(`
|
|
477
477
|
`)){if(!m||m.startsWith("index "))continue;let p=(m.startsWith("@@")?m.replace(/^@@ [^@]* @@/,"@@ @@"):m).replace(/[ \t\r]/g,"");p&&(i.update(p),i.update(`
|
|
478
478
|
`),a=!0)}}return a?i.hex():null}Le();ue();Ie();qt();Je();async function bh(e){let t=await Z(e);return t?.type==="symbolic"?we(t.target):"detached HEAD"}function Tf(e){return e==="HEAD"?`HEAD is up to date.
|
|
479
479
|
`:`Current branch ${e} is up to date.
|
|
@@ -493,7 +493,7 @@ hint: edit the todo list first:
|
|
|
493
493
|
hint:
|
|
494
494
|
hint: git rebase --edit-todo
|
|
495
495
|
hint: git rebase --continue
|
|
496
|
-
`}async function Ei(e,t,n,r,o,s){await
|
|
496
|
+
`}async function Ei(e,t,n,r,o,s){await te(e,t,"HEAD",n,r,`rebase (start): checkout ${s}`),o!=="detached HEAD"&&(await te(e,t,o,n,r,`rebase (finish): ${o} onto ${r}`),await te(e,t,"HEAD",r,r,`rebase (finish): returning to ${o}`))}async function io(e,t,n,r){let o=await M(e,t),s=await yh(e,o.tree,n);if(s)return s;let i=await rn(e,o.tree,n);return i.success&&(await ce(e,{version:2,entries:i.newEntries}),await Oe(e,i.worktreeOps)),r!=="detached HEAD"?await V(e,r,t):await V(e,"HEAD",t),null}function Af(e,t){e.command("rebase",{description:"Reapply commits on top of another base tip",args:[B.string().name("upstream").describe("Upstream branch to rebase onto").optional()],options:{onto:Q.string().describe("Starting point at which to create new commits"),abort:H().describe("Abort the current rebase operation"),continue:H().describe("Continue the rebase after conflict resolution"),skip:H().describe("Skip the current patch and continue")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o;if(n.abort)return Ch(s,r.env);if(n.continue)return Ph(s,r.env);if(n.skip)return Rh(s,r.env);let i=n.upstream;if(!i)return O("no upstream configured and no upstream argument given");if(await Ht(s))return O(`It seems that there is already a rebase-merge directory, and
|
|
497
497
|
I wonder if you are in the middle of another rebase. If that is the
|
|
498
498
|
case, please try
|
|
499
499
|
git rebase (--continue | --abort | --skip)
|
|
@@ -514,9 +514,9 @@ hint: use --reapply-cherry-picks to include skipped commits
|
|
|
514
514
|
hint: Disable this message with "git config set advice.skippedCherryPicks false"
|
|
515
515
|
`),R.length===0){if(m!==a){let A=await io(s,m,p,f);if(A)return A.stderr=y+A.stderr,A;await Ei(s,r.env,a,m,f,i)}return{stdout:"",stderr:`${y}Successfully rebased and updated ${f}.
|
|
516
516
|
`,exitCode:0}}let $=R.map(A=>({hash:A.hash,subject:oe(A.commit.message)})),v=m,G=0;for(let A of $){let W=await M(s,A.hash);if(W.parents.length>1||W.parents.length===0||W.parents[0]!==v)break;v=A.hash,G++}let L=$.splice(0,G);if($.length===0){if(v===a)return{stdout:Tf(d),stderr:y,exitCode:0};let A=await io(s,v,p,f);return A?(A.stderr=y+A.stderr,A):(await Ei(s,r.env,a,v,f,i),{stdout:"",stderr:`${y}Successfully rebased and updated ${f}.
|
|
517
|
-
`,exitCode:0})}let Y=await io(s,v,p,"detached HEAD");if(Y)return Y.stderr=y+Y.stderr,Y;await
|
|
517
|
+
`,exitCode:0})}let Y=await io(s,v,p,"detached HEAD");if(Y)return Y.stderr=y+Y.stderr,Y;await te(s,r.env,"HEAD",a,v,`rebase (start): checkout ${i}`);let j={headName:f,origHead:a,onto:m,todo:$,done:L,msgnum:G,end:G+$.length};await Bo(s,j),await V(s,"ORIG_HEAD",a);let I=await ki(s,r.env);return y&&(I.stderr=y+I.stderr),I}})}async function ki(e,t){let n=[],r=[];for(;;){let o=await lt(e);if(!o||o.todo.length===0)break;let s=o.todo[0];if(!s)break;n.push(`Rebasing (${o.msgnum+1}/${o.end})\r`),await qa(e);let i=await kh(e,s,t);if(i.conflict){if(i.rescheduleCurrent){let a=await lt(e);a&&(a.todo=[s,...a.todo],await Bo(e,a))}return i.stdout&&r.push(i.stdout),n.push(i.stderr),{stdout:r.join(""),stderr:n.join(""),exitCode:1}}i.stdout&&r.push(i.stdout),i.stderr&&n.push(i.stderr)}return xh(e,n,t)}async function kh(e,t,n){let r=t.hash,o=await M(e,r),s=o.parents.length>0?o.parents[0]:null,i=s?await M(e,s):null,a=await X(e);if(!a)return{conflict:!0,stdout:"",stderr:`fatal: no HEAD commit during rebase
|
|
518
518
|
`};if(s&&s===a){let L=await q(e);if(!i)return{conflict:!0,stdout:"",stderr:`fatal: missing parent commit during rebase
|
|
519
|
-
`};let Y=await We(e,i.tree),j=await We(e,o.tree),I=new Map(Y.map(D=>[D.path,D.hash])),A=new Map;for(let D of j){let K=I.get(D.path);(!K||K!==D.hash)&&A.set(D.path,D.hash)}let W=await Hf(e,L,A);if(W)return await V(e,"REBASE_HEAD",r),await Ss(e,r,o.author),{conflict:!0,stdout:"",stderr:vf(W,t),rescheduleCurrent:!0};let F=await rn(e,o.tree,L);return F.success&&(await ce(e,{version:2,entries:F.newEntries}),await Oe(e,F.worktreeOps)),await gn(e,r),await
|
|
519
|
+
`};let Y=await We(e,i.tree),j=await We(e,o.tree),I=new Map(Y.map(D=>[D.path,D.hash])),A=new Map;for(let D of j){let K=I.get(D.path);(!K||K!==D.hash)&&A.set(D.path,D.hash)}let W=await Hf(e,L,A);if(W)return await V(e,"REBASE_HEAD",r),await Ss(e,r,o.author),{conflict:!0,stdout:"",stderr:vf(W,t),rescheduleCurrent:!0};let F=await rn(e,o.tree,L);return F.success&&(await ce(e,{version:2,entries:F.newEntries}),await Oe(e,F.worktreeOps)),await gn(e,r),await te(e,n,"HEAD",a,r,`rebase (pick): ${t.subject}`),{conflict:!1,stdout:"",stderr:""}}let c=await M(e,a),f=i?i.tree:null,d=z(r),u=oe(o.message),l={a:"HEAD",b:u?`${d} (${u})`:d},m=await St(e,f,c.tree,o.tree,l),h=await q(e),[p,g,w]=await Promise.all([We(e,c.tree),f?We(e,f):Promise.resolve([]),We(e,o.tree)]),k=new Set;for(let L of g)k.add(L.path);for(let L of p)k.add(L.path);for(let L of w)k.add(L.path);let b=h.entries.filter(L=>!k.has(L.path)),E=[...m.entries,...b];E.sort((L,Y)=>ke(L.path,Y.path)||L.stage-Y.stage);let x={version:2,entries:E},C=E.filter(L=>L.stage===0),P=await Ae(e,C),R=new Map(p.map(L=>[L.path,L])),y=new Map;for(let L of C){let Y=R.get(L.path);(!Y||Y.hash!==L.hash)&&y.set(L.path,L.hash)}for(let L of m.conflicts){if(L.reason==="content"||L.reason==="add-add"){y.set(L.path,null);continue}if(L.reason==="delete-modify"){let Y=m.entries.filter(A=>A.path===L.path&&A.stage>0),j=Y.find(A=>A.stage===2),I=Y.find(A=>A.stage===3);I&&!j&&y.set(L.path,I.hash)}}let $=await Hf(e,h,y);if($)return await V(e,"REBASE_HEAD",r),await Ss(e,r,o.author),{conflict:!0,stdout:"",stderr:vf($,t),rescheduleCurrent:!0};if(await ce(e,x),e.workTree){let L=await kn(e,c.tree,m.resultTree,h);L.success&&await Oe(e,L.worktreeOps)}if(m.conflicts.length>0){await V(e,"REBASE_HEAD",r),await Ss(e,r,o.author),await Pe(e,"MERGE_MSG",o.message),await Pe(e,"rebase-merge/message",o.message);let L=m.messages.join(`
|
|
520
520
|
`);return{conflict:!0,stdout:L?`${L}
|
|
521
521
|
`:"",stderr:`error: could not apply ${d}... ${t.subject}
|
|
522
522
|
hint: Resolve all conflicts manually, mark them as resolved with
|
|
@@ -526,8 +526,8 @@ hint: To abort and get back to the state before "git rebase", run "git rebase --
|
|
|
526
526
|
hint: Disable this message with "git config set advice.mergeConflict false"
|
|
527
527
|
Could not apply ${d}... # ${t.subject}
|
|
528
528
|
`}}if(P===c.tree)return{conflict:!1,stdout:"",stderr:`dropping ${r} ${t.subject} -- patch contents already upstream
|
|
529
|
-
`};let v=await Ve(e,n);if(S(v))return{conflict:!0,stdout:"",stderr:v.stderr};let G=await ft(e,P,[a],o.author,v,o.message);return await
|
|
530
|
-
`;return await le(e,"REBASE_HEAD"),await Wn(e),await Wo(e),{stdout:"",stderr:t.join("")+i,exitCode:0}}async function Ch(e,t){let n=await lt(e);if(!n)return O("no rebase in progress");let r=await X(e),o=n.origHead,s=await M(e,o),i=await q(e),a=await Eh(e,s.tree,i,o);if(a)return a;let c=await rn(e,s.tree,i);c.success&&(await ce(e,{version:2,entries:c.newEntries}),await Oe(e,c.worktreeOps)),n.headName!=="detached HEAD"?(await V(e,n.headName,o),await Fe(e,"HEAD",n.headName),await dt(e)):await gn(e,o);let f=n.headName==="detached HEAD"?o:n.headName;return await
|
|
529
|
+
`};let v=await Ve(e,n);if(S(v))return{conflict:!0,stdout:"",stderr:v.stderr};let G=await ft(e,P,[a],o.author,v,o.message);return await te(e,n,"HEAD",a,G,`rebase (pick): ${t.subject}`),{conflict:!1,stdout:"",stderr:""}}async function xh(e,t,n){let r=await lt(e);if(!r)return O("no rebase in progress");let o=await X(e);if(!o)return O("no HEAD during rebase finish");r.headName!=="detached HEAD"&&(await V(e,r.headName,o),await Fe(e,"HEAD",r.headName),await dt(e),await te(e,n,r.headName,r.origHead,o,`rebase (finish): ${r.headName} onto ${r.onto}`),await te(e,n,"HEAD",o,o,`rebase (finish): returning to ${r.headName}`));let i=`Successfully rebased and updated ${r.headName}.
|
|
530
|
+
`;return await le(e,"REBASE_HEAD"),await Wn(e),await Wo(e),{stdout:"",stderr:t.join("")+i,exitCode:0}}async function Ch(e,t){let n=await lt(e);if(!n)return O("no rebase in progress");let r=await X(e),o=n.origHead,s=await M(e,o),i=await q(e),a=await Eh(e,s.tree,i,o);if(a)return a;let c=await rn(e,s.tree,i);c.success&&(await ce(e,{version:2,entries:c.newEntries}),await Oe(e,c.worktreeOps)),n.headName!=="detached HEAD"?(await V(e,n.headName,o),await Fe(e,"HEAD",n.headName),await dt(e)):await gn(e,o);let f=n.headName==="detached HEAD"?o:n.headName;return await te(e,t,"HEAD",r,o,`rebase (abort): returning to ${f}`),await le(e,"REBASE_HEAD"),await Wn(e),await Wo(e),{stdout:"",stderr:"",exitCode:0}}async function Ph(e,t){let n="";if(!await lt(e))return O("no rebase in progress");let o=await q(e);if(Pt(o))return N(`error: Committing is not possible because you have unmerged files.
|
|
531
531
|
hint: Fix them up in the work tree, and then use 'git add <file>'
|
|
532
532
|
hint: as appropriate to mark resolution and make a commit.
|
|
533
533
|
fatal: Exiting because of an unresolved conflict.
|
|
@@ -544,16 +544,16 @@ In both cases, once you're done, continue with:
|
|
|
544
544
|
|
|
545
545
|
git rebase --continue
|
|
546
546
|
|
|
547
|
-
`);if(u){let m=await M(e,s),h;h=await Ce(e,"rebase-merge/message")??await Ce(e,"MERGE_MSG")??void 0,h||(h=m.message);let p=await Ve(e,t);if(S(p))return p;let g=Ot(h),w=[a],k=await _(e,"MERGE_HEAD");k&&w.push(k);let b=await ft(e,d,w,m.author,p,g);k&&(await le(e,"MERGE_HEAD"),await Me(e,"MERGE_MODE"));let E=oe(g);await
|
|
547
|
+
`);if(u){let m=await M(e,s),h;h=await Ce(e,"rebase-merge/message")??await Ce(e,"MERGE_MSG")??void 0,h||(h=m.message);let p=await Ve(e,t);if(S(p))return p;let g=Ot(h),w=[a],k=await _(e,"MERGE_HEAD");k&&w.push(k);let b=await ft(e,d,w,m.author,p,g);k&&(await le(e,"MERGE_HEAD"),await Me(e,"MERGE_MODE"));let E=oe(g);await te(e,t,"HEAD",a,b,`rebase (continue): ${E}`);let x=await bh(e),C=await Yt(e,c.tree,d,m.author,p,!1);n=`${It(x,b,g)}
|
|
548
548
|
${C}`}await le(e,"REBASE_HEAD"),await le(e,"CHERRY_PICK_HEAD"),await le(e,"REVERT_HEAD"),await Me(e,"MERGE_MSG"),await Me(e,"rebase-merge/message")}let i=await ki(e,t);return n&&(i.stdout=n+i.stdout),i}async function Rh(e,t){if(!await lt(e))return O("no rebase in progress");let r=await X(e);if(!r)return{stdout:"",stderr:`error: could not determine HEAD revision
|
|
549
549
|
fatal: could not discard worktree changes
|
|
550
|
-
`,exitCode:128};let o=await M(e,r),s=await q(e),i=await rn(e,o.tree,s);return i.success&&(await ce(e,{version:2,entries:i.newEntries}),await Oe(e,i.worktreeOps)),await le(e,"REBASE_HEAD"),await le(e,"CHERRY_PICK_HEAD"),await le(e,"REVERT_HEAD"),await Me(e,"MERGE_MSG"),await Me(e,"rebase-merge/message"),ki(e,t)}
|
|
550
|
+
`,exitCode:128};let o=await M(e,r),s=await q(e),i=await rn(e,o.tree,s);return i.success&&(await ce(e,{version:2,entries:i.newEntries}),await Oe(e,i.worktreeOps)),await le(e,"REBASE_HEAD"),await le(e,"CHERRY_PICK_HEAD"),await le(e,"REVERT_HEAD"),await Me(e,"MERGE_MSG"),await Me(e,"rebase-merge/message"),ki(e,t)}ne();de();Le();ue();function $h(e,t,n,r){return`${z(n)} ${e}@{${t}}: ${r}`}async function ao(e,t,n){let r=t==="HEAD"?"HEAD":`refs/heads/${t}`;if(!await _(e,r))return{stdout:"",stderr:`fatal: ambiguous argument '${t}': unknown revision or path not in the working tree.
|
|
551
551
|
Use '--' to separate paths from revisions, like this:
|
|
552
552
|
'git <command> [<revision>...] -- [<file>...]'
|
|
553
553
|
`,exitCode:128};let s=await ze(e,r),i=[],a=n!==void 0?n:s.length,c=0;for(let d=s.length-1;d>=0&&c<a;d--){let u=s[d];if(!u)continue;let l=s.length-1-d;u.newHash!==J&&(i.push($h(t,l,u.newHash,u.message)),c++)}return{stdout:i.length>0?`${i.join(`
|
|
554
554
|
`)}
|
|
555
555
|
`:"",stderr:"",exitCode:0}}function Sf(e,t){return e.command("reflog",{description:"Manage reflog information",args:[B.string().name("args").variadic().optional()],options:{maxCount:Q.number().alias("n").describe("Limit the number of entries to output")},handler:async(r,o)=>{let s=await U(o.fs,o.cwd,t);if(S(s))return s;let i=s,a=r.args;if(a.length===0)return ao(i,"HEAD",r.maxCount);let c=a[0];if(!c)return ao(i,"HEAD",r.maxCount);if(c==="show"){let f=a[1]??"HEAD";return ao(i,f,r.maxCount)}if(c==="exists"){let f=a[1];if(!f)return{stdout:"",stderr:`fatal: reflog exists requires a ref argument
|
|
556
|
-
`,exitCode:128};let d=T(i.gitDir,"logs",f);return{stdout:"",stderr:"",exitCode:await i.fs.exists(d)?0:1}}return ao(i,c,r.maxCount)}})}
|
|
556
|
+
`,exitCode:128};let d=T(i.gitDir,"logs",f);return{stdout:"",stderr:"",exitCode:await i.fs.exists(d)?0:1}}return ao(i,c,r.maxCount)}})}ne();Xe();Le();ue();function Ih(e){let t=[];for(let n of Object.keys(e)){let r=n.match(/^remote "(.+)"$/);r?.[1]&&t.push(r[1])}return t.sort()}function Df(e,t){let n=e.command("remote",{description:"Manage set of tracked repositories",options:{verbose:H().alias("v").describe("Show remote URLs")},handler:async(s,i)=>{let a=await U(i.fs,i.cwd,t);if(S(a))return a;let c=await he(a),f=Ih(c);if(f.length===0)return{stdout:"",stderr:"",exitCode:0};if(s.verbose){let d=[];for(let u of f){let m=c[`remote "${u}"`]?.url??"";d.push(`${u} ${m} (fetch)`),d.push(`${u} ${m} (push)`)}return{stdout:`${d.join(`
|
|
557
557
|
`)}
|
|
558
558
|
`,stderr:"",exitCode:0}}return{stdout:`${f.join(`
|
|
559
559
|
`)}
|
|
@@ -563,18 +563,18 @@ Use '--' to separate paths from revisions, like this:
|
|
|
563
563
|
`,2);let d=c[f];return d&&(d.url=s.url),await Ye(a,c),{stdout:"",stderr:"",exitCode:0}}}),n.command("get-url",{description:"Retrieve the URL for an existing remote",args:[B.string().name("name").describe("Remote name")],handler:async(s,i)=>{let a=await U(i.fs,i.cwd,t);if(S(a))return a;let c=await he(a),f=`remote "${s.name}"`;return f in c?{stdout:`${c[f]?.url??""}
|
|
564
564
|
`,stderr:"",exitCode:0}:N(`error: No such remote '${s.name}'
|
|
565
565
|
`,2)}})}async function Oh(e,t,n,r){let o=`remote "${n}"`;if(!(o in t))return N(`error: No such remote: '${n}'
|
|
566
|
-
`,2);let s=`remote "${r}"`;if(s in t)return O(`remote ${r} already exists.`);let i={...t[o]};i.fetch&&(i.fetch=i.fetch.replace(`refs/remotes/${n}/`,`refs/remotes/${r}/`)),t[s]=i,delete t[o];for(let f of Object.keys(t))f.match(/^branch "(.+)"$/)&&t[f]?.remote===n&&(t[f].remote=r);await Ye(e,t);let a=`refs/remotes/${n}`,c=await ge(e,a);for(let f of c){let d=f.name.replace(a,`refs/remotes/${r}`),u=await ze(e,f.name);await V(e,d,f.hash),await le(e,f.name),u.length>0&&await bn(e,d,u)}return{stdout:"",stderr:"",exitCode:0}}function Th(e,t){for(let n of Object.keys(e))n.match(/^branch "(.+)"$/)&&e[n]?.remote===t&&(delete e[n].remote,delete e[n].merge,Object.keys(e[n]).length===0&&delete e[n])}async function Hh(e,t){let n=`refs/remotes/${t}`,r=await ge(e,n);for(let o of r)await le(e,o.name)}
|
|
566
|
+
`,2);let s=`remote "${r}"`;if(s in t)return O(`remote ${r} already exists.`);let i={...t[o]};i.fetch&&(i.fetch=i.fetch.replace(`refs/remotes/${n}/`,`refs/remotes/${r}/`)),t[s]=i,delete t[o];for(let f of Object.keys(t))f.match(/^branch "(.+)"$/)&&t[f]?.remote===n&&(t[f].remote=r);await Ye(e,t);let a=`refs/remotes/${n}`,c=await ge(e,a);for(let f of c){let d=f.name.replace(a,`refs/remotes/${r}`),u=await ze(e,f.name);await V(e,d,f.hash),await le(e,f.name),u.length>0&&await bn(e,d,u)}return{stdout:"",stderr:"",exitCode:0}}function Th(e,t){for(let n of Object.keys(e))n.match(/^branch "(.+)"$/)&&e[n]?.remote===t&&(delete e[n].remote,delete e[n].merge,Object.keys(e[n]).length===0&&delete e[n])}async function Hh(e,t){let n=`refs/remotes/${t}`,r=await ge(e,n);for(let o of r)await le(e,o.name)}ne();Ee();se();de();Le();ue();en();Ie();qt();Je();function jf(e,t){e.command("reset",{description:"Reset current HEAD to the specified state",args:[B.string().name("args").variadic().optional()],options:{soft:H().describe("Only move HEAD"),mixed:H().describe("Move HEAD and reset index (default)"),hard:H().describe("Move HEAD, reset index, and reset working tree")},handler:async(n,r,o)=>{let s=await U(r.fs,r.cwd,t);if(S(s))return s;let i=s,a=n.args;if([n.soft,n.mixed,n.hard].filter(Boolean).length>1)return O("--soft, --mixed, and --hard are mutually exclusive");let f=n.soft||n.mixed||n.hard,d=ct(i,r.cwd);if(o.passthrough.length>0){let m=a.length>0?a[0]:void 0;return xi(i,o.passthrough,d,m,t)}if(!f&&a.length>0){let m=a[0],h=await Be(i,m);return a.length===1&&h?Mf(i,m,"mixed",r.env,t):h?xi(i,a.slice(1),d,m,t):xi(i,a,d,void 0,t)}let u=n.soft?"soft":n.hard?"hard":"mixed",l=a.length>0?a[0]:"HEAD";return Mf(i,l,u,r.env,t)}})}async function xi(e,t,n,r,o){if(o?.hooks){let d=await o.hooks.emitPre("pre-reset",{mode:"paths",target:r??null});if(d)return{stdout:"",stderr:d.message??"",exitCode:1}}let s=null;if(r){let d=await Be(e,r);if(!d)return Mt(r);let u=await Ne(e,d);s=(await M(e,u)).tree}else{let d=await X(e);d&&(s=(await M(e,d)).tree)}let i=await fe(e,s??null),a=await q(e);if(t.some(Un)){let d=t.map(l=>Ge(l,n)),u=new Set;for(let[l]of i)u.add(l);for(let l of a.entries)u.add(l.path);for(let l of u){if(!be(d,l))continue;let m=i.get(l);m?a=ht(a,{path:m.path,mode:parseInt(m.mode,8),hash:m.hash,stage:0,stat:xe()}):a=nt(a,l)}}else for(let d of t){let u=i.get(d);if(u)a=ht(a,{path:u.path,mode:parseInt(u.mode,8),hash:u.hash,stage:0,stat:xe()});else if(a.entries.some(m=>m.path===d))a=nt(a,d);else if(!(e.workTree&&await e.fs.exists(T(e.workTree,d))))return Mt(d)}await ce(e,a);let f={stdout:await Lf(e,a),stderr:"",exitCode:0};return await o?.hooks?.emitPost("post-reset",{mode:"paths",targetHash:null}),f}async function Lf(e,t){if(!e.workTree)return"";let n=new Set;for(let i of t.entries)i.stage>0&&n.add(i.path);let o=(await Rt(e,t)).filter(i=>i.status==="modified"||i.status==="deleted");if(o.length===0&&n.size===0)return"";let s=["Unstaged changes after reset:"];for(let i of o){let a=i.status==="modified"?"M":"D";s.push(`${a} ${i.path}`)}for(let i of[...n].sort())s.push(`U ${i}`);return s.sort((i,a)=>{if(i==="Unstaged changes after reset:")return-1;if(a==="Unstaged changes after reset:")return 1;let c=i.slice(2),f=a.slice(2);return c<f?-1:c>f?1:0}),`${s.join(`
|
|
567
567
|
`)}
|
|
568
|
-
`}async function Mf(e,t,n,r,o){if(o?.hooks){let l=await o.hooks.emitPre("pre-reset",{mode:n,target:t});if(l)return{stdout:"",stderr:l.message??"",exitCode:1}}let s=await Be(e,t);if(!s)return Mt(t);let i=await Ne(e,s),a=await M(e,i);if(n==="soft"){let l=await _(e,"MERGE_HEAD"),m=await q(e);if(l||Pt(m))return O("Cannot do a soft reset in the middle of a merge.")}let c=await X(e),f=await Z(e);f?.type==="symbolic"?await V(e,f.target,i):await V(e,"HEAD",i);let d=`reset: moving to ${t}`;if(f?.type==="symbolic"&&c!==i?await
|
|
569
|
-
`:"";return await o?.hooks?.emitPost("post-reset",{mode:n,targetHash:i}),{stdout:u,stderr:"",exitCode:0}}
|
|
568
|
+
`}async function Mf(e,t,n,r,o){if(o?.hooks){let l=await o.hooks.emitPre("pre-reset",{mode:n,target:t});if(l)return{stdout:"",stderr:l.message??"",exitCode:1}}let s=await Be(e,t);if(!s)return Mt(t);let i=await Ne(e,s),a=await M(e,i);if(n==="soft"){let l=await _(e,"MERGE_HEAD"),m=await q(e);if(l||Pt(m))return O("Cannot do a soft reset in the middle of a merge.")}let c=await X(e),f=await Z(e);f?.type==="symbolic"?await V(e,f.target,i):await V(e,"HEAD",i);let d=`reset: moving to ${t}`;if(f?.type==="symbolic"&&c!==i?await te(e,r,f.target,c,i,d,!0):(f?.type==="symbolic"||c!==i)&&await te(e,r,"HEAD",c,i,d),await Wn(e),n==="mixed"){let l=await We(e,a.tree),m=os(l.map(p=>({path:p.path,mode:parseInt(p.mode,8),hash:p.hash,stage:0,stat:xe()})));await ce(e,m);let h=await Lf(e,m);if(h)return await o?.hooks?.emitPost("post-reset",{mode:n,targetHash:i}),{stdout:h,stderr:"",exitCode:0}}if(n==="hard"){let l=qe(e);if(l)return l;let m=await q(e),h=await rn(e,a.tree,m);await ce(e,{version:2,entries:h.newEntries}),await Oe(e,h.worktreeOps)}let u=n==="hard"?`HEAD is now at ${z(i)} ${oe(a.message)}
|
|
569
|
+
`:"";return await o?.hooks?.emitPost("post-reset",{mode:n,targetHash:i}),{stdout:u,stderr:"",exitCode:0}}ne();Ee();se();ue();Ie();Je();function Gf(e,t){e.command("restore",{description:"Restore working tree files",args:[B.string().name("pathspec").variadic().optional()],options:{source:Q.string().alias("s").describe("Restore from tree-ish"),staged:H().alias("S").describe("Restore the index"),worktree:H().alias("W").describe("Restore the working tree (default)"),ours:H().describe("Checkout our version for unmerged files"),theirs:H().describe("Checkout their version for unmerged files")},handler:async(n,r,o)=>{let s=await U(r.fs,r.cwd,t);if(S(s))return s;let i=s,a=[...n.pathspec??[],...o.passthrough];if(a.length===0)return O("you must specify path(s) to restore");if(n.ours&&n.theirs)return O("--ours and --theirs are incompatible");let c=!!n.staged,f=n.worktree!==void 0?!!n.worktree:!c,d=ct(i,r.cwd);if(n.ours||n.theirs)return n.source?O("cannot specify both --source and --ours/--theirs"):c?O("cannot use --ours/--theirs with --staged"):Ls(i,a,d,n.theirs?3:2,{deleteOnMissing:!0});let u=null;if(n.source){let l=await Te(i,n.source,`could not resolve '${n.source}'`);if(S(l))return l;u=l.commit.tree}else if(c){let l=await X(i);l&&(u=(await M(i,l)).tree)}return c&&f?Sh(i,a,d,u):c?vh(i,a,d,u):u?Ah(i,a,d,u):js(i,a,d)}})}async function vh(e,t,n,r){let o=await fe(e,r),s=await q(e),i=t.map(f=>Ge(f,n)),a=new Set;for(let[f]of o)a.add(f);for(let f of s.entries)a.add(f.path);let c=!1;for(let f of a){if(!be(i,f))continue;c=!0;let d=o.get(f);if(d)s=ht(s,{path:d.path,mode:parseInt(d.mode,8),hash:d.hash,stage:0,stat:xe()});else{if(s.entries.some(l=>l.path===f&&l.stage>0))return{stdout:"",stderr:`error: path '${f}' is unmerged
|
|
570
570
|
`,exitCode:1};s=nt(s,f)}}return c?(await ce(e,s),{stdout:"",stderr:"",exitCode:0}):N(`error: pathspec '${t[0]}' did not match any file(s) known to git
|
|
571
571
|
`)}async function Ah(e,t,n,r){if(!e.workTree)return O("this operation must be run in a work tree");let o=await fe(e,r),s=t.map(f=>Ge(f,n)),i=[],a=await q(e),c=new Set;for(let[f]of o)c.add(f);for(let f of a.entries)c.add(f.path);for(let f of c)if(be(s,f)){if(!o.has(f)&&a.entries.some(u=>u.path===f&&u.stage!==0))return{stdout:"",stderr:`error: path '${f}' is unmerged
|
|
572
572
|
`,exitCode:1};i.push(f)}if(i.length===0)return N(`error: pathspec '${t[0]}' did not match any file(s) known to git
|
|
573
573
|
`);for(let f of i){let d=o.get(f);if(d)await rt(e,{path:d.path,hash:d.hash,mode:d.mode});else{let u=`${e.workTree}/${f}`;await e.fs.exists(u)&&await e.fs.rm(u)}}return{stdout:"",stderr:"",exitCode:0}}async function Sh(e,t,n,r){if(!e.workTree)return O("this operation must be run in a work tree");let o=await fe(e,r),s=await q(e),i=t.map(f=>Ge(f,n)),a=[],c=new Set;for(let[f]of o)c.add(f);for(let f of s.entries)c.add(f.path);for(let f of c)be(i,f)&&a.push(f);if(a.length===0)return N(`error: pathspec '${t[0]}' did not match any file(s) known to git
|
|
574
574
|
`);for(let f of a){let d=o.get(f);if(d)s=ht(s,{path:d.path,mode:parseInt(d.mode,8),hash:d.hash,stage:0,stat:xe()}),await rt(e,{path:d.path,hash:d.hash,mode:d.mode});else{if(s.entries.some(m=>m.path===f&&m.stage>0))return{stdout:"",stderr:`error: path '${f}' is unmerged
|
|
575
|
-
`,exitCode:1};s=nt(s,f);let l=`${e.workTree}/${f}`;await e.fs.exists(l)&&await e.fs.rm(l)}}return await ce(e,s),{stdout:"",stderr:"",exitCode:0}}
|
|
575
|
+
`,exitCode:1};s=nt(s,f);let l=`${e.workTree}/${f}`;await e.fs.exists(l)&&await e.fs.rm(l)}}return await ce(e,s),{stdout:"",stderr:"",exitCode:0}}ne();de();ue();en();function Nf(e,t){e.command("rev-parse",{description:"Pick out and massage parameters",args:[B.string().name("args").describe("Refs or revision expressions to resolve").optional().variadic()],options:{verify:H().describe("Verify that exactly one parameter is provided and resolves to an object"),short:H().describe("Abbreviate object name (default 7 chars)"),"abbrev-ref":H().describe("Output abbreviated ref name instead of object hash"),"symbolic-full-name":H().describe("Output the full symbolic ref name"),"show-toplevel":H().describe("Show the absolute path of the top-level directory"),"git-dir":H().describe("Show the path to the .git directory"),"is-inside-work-tree":H().describe("Output whether cwd is inside the work tree"),"is-bare-repository":H().describe("Output whether the repository is bare"),"show-prefix":H().describe("Show path of cwd relative to top-level directory"),"show-cdup":H().describe("Show relative path from cwd up to top-level directory")},handler:async(n,r)=>{let o=n.args.filter(E=>E!==""),s=n.verify,i=n.short,a=n["abbrev-ref"],c=n["symbolic-full-name"],f=n["show-toplevel"],d=n["git-dir"],u=n["is-inside-work-tree"],l=n["is-bare-repository"],m=n["show-prefix"],h=n["show-cdup"],p=f||d||u||l||m||h,g=await U(r.fs,r.cwd,t);if(S(g))return g;let w=g,k=[];if(f){if(!w.workTree)return O("this operation must be run in a work tree");k.push(w.workTree)}if(d&&k.push(w.gitDir),u&&k.push(w.workTree?"true":"false"),l&&k.push(w.workTree?"false":"true"),m){if(!w.workTree)return O("this operation must be run in a work tree");let E=st(w.workTree,r.cwd);k.push(E===""?"":`${E}/`)}if(h){if(!w.workTree)return O("this operation must be run in a work tree");let E=st(r.cwd,w.workTree);k.push(E===""?"":`${E}/`)}if(p&&o.length===0)return{stdout:k.map(x=>`${x}
|
|
576
576
|
`).join(""),stderr:"",exitCode:0};if(s&&o.length!==1)return O("Needed a single revision");for(let E of o){if(a){let C=await Dh(w,E);if(C===null)return Ci(E,s);k.push(C);continue}if(c){let C=await Mh(w,E);if(C===null)return Ci(E,s);k.push(C);continue}let x=await Be(w,E);if(!x)return Ci(E,s);k.push(i?z(x):x)}return{stdout:k.map(E=>`${E}
|
|
577
|
-
`).join(""),stderr:"",exitCode:0}}})}function Ci(e,t){return t?O("Needed a single revision"):Mt(e)}async function Dh(e,t){if(t==="HEAD"||t==="@"){let r=await Z(e);if(!r)return null;if(r.type==="symbolic"){let o=r.target;return o.startsWith("refs/heads/")?o.slice(11):o}return"HEAD"}return await Be(e,t)?t:null}async function Mh(e,t){if(t==="HEAD"||t==="@"){let r=await Z(e);return r?r.type==="symbolic"?r.target:"HEAD":null}if(!await Be(e,t))return null;if(t.startsWith("refs/"))return t;for(let r of["refs/heads/","refs/tags/","refs/remotes/"]){let o=`${r}${t}`;if(await _(e,o))return o}return t}
|
|
577
|
+
`).join(""),stderr:"",exitCode:0}}})}function Ci(e,t){return t?O("Needed a single revision"):Mt(e)}async function Dh(e,t){if(t==="HEAD"||t==="@"){let r=await Z(e);if(!r)return null;if(r.type==="symbolic"){let o=r.target;return o.startsWith("refs/heads/")?o.slice(11):o}return"HEAD"}return await Be(e,t)?t:null}async function Mh(e,t){if(t==="HEAD"||t==="@"){let r=await Z(e);return r?r.type==="symbolic"?r.target:"HEAD":null}if(!await Be(e,t))return null;if(t.startsWith("refs/"))return t;for(let r of["refs/heads/","refs/tags/","refs/remotes/"]){let o=`${r}${t}`;if(await _(e,o))return o}return t}ne();Ee();se();Le();ue();Ie();function _f(e,t){e.command("revert",{description:"Revert some existing commits",args:[B.string().name("commit").describe("The commit to revert").optional()],options:{abort:H().describe("Abort the current revert operation"),continue:H().describe("Continue the revert after conflict resolution"),"no-commit":H().alias("n").describe("Apply changes without creating a commit"),"no-edit":H().describe("Do not edit the commit message"),mainline:Q.number().alias("m").describe("Select the parent number for reverting merges")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o;if(n.abort){if(t?.hooks){let W=await t.hooks.emitPre("pre-revert",{mode:"abort",commit:null});if(W)return{stdout:"",stderr:W.message??"",exitCode:1}}let A=await jh(s,r.env);return A.exitCode===0&&await t?.hooks?.emitPost("post-revert",{mode:"abort",commitHash:null,hadConflicts:!1}),A}if(n.continue){if(t?.hooks){let W=await t.hooks.emitPre("pre-revert",{mode:"continue",commit:null});if(W)return{stdout:"",stderr:W.message??"",exitCode:1}}let A=await Lh(s,r.env);return A.exitCode===0&&await t?.hooks?.emitPost("post-revert",{mode:"continue",commitHash:null,hadConflicts:!1}),A}let i=n.commit;if(!i)return O("you must specify a commit to revert");if(t?.hooks){let A=await t.hooks.emitPre("pre-revert",{mode:"revert",commit:i});if(A)return{stdout:"",stderr:A.message??"",exitCode:1}}let a=await Te(s,i);if(S(a))return a;let c=a.hash,f=a.commit,d=await Ke(s);if(S(d))return d;let u=await q(s),l=sn(u,"Reverting",`fatal: revert failed
|
|
578
578
|
`);if(l)return l;let m=await M(s,d);if(s.workTree){let A=await fe(s,m.tree);if(nr(u,A))return N(`error: your local changes would be overwritten by revert.
|
|
579
579
|
hint: commit your changes or stash them to proceed.
|
|
580
580
|
fatal: revert failed
|
|
@@ -600,7 +600,7 @@ hint: You can instead skip this commit with "git revert --skip".
|
|
|
600
600
|
hint: To abort and get back to the state before "git revert",
|
|
601
601
|
hint: run "git revert --abort".
|
|
602
602
|
hint: Disable this message with "git config set advice.mergeConflict false"
|
|
603
|
-
`,exitCode:1}}if(n["no-commit"])return await V(s,"REVERT_HEAD",c),await Pe(s,"MERGE_MSG",k),{stdout:"",stderr:"",exitCode:0};let C=x.mergedTreeHash,P=await Kt(s,r.env);if(S(P))return P;let R=await Ve(s,r.env);if(S(R))return R;let y=await ft(s,C,[d],P,R,k);await Tt(s),await jt(s);let $=await Z(s),v=oe(k),G=$?.type==="symbolic"?$.target:"HEAD";await
|
|
603
|
+
`,exitCode:1}}if(n["no-commit"])return await V(s,"REVERT_HEAD",c),await Pe(s,"MERGE_MSG",k),{stdout:"",stderr:"",exitCode:0};let C=x.mergedTreeHash,P=await Kt(s,r.env);if(S(P))return P;let R=await Ve(s,r.env);if(S(R))return R;let y=await ft(s,C,[d],P,R,k);await Tt(s),await jt(s);let $=await Z(s),v=oe(k),G=$?.type==="symbolic"?$.target:"HEAD";await te(s,r.env,G,d,y,`revert: ${v}`,$?.type==="symbolic");let L=$?.type==="symbolic"?we($.target):"detached HEAD",Y=await Yt(s,m.tree,C,P,R,P.timestamp!==R.timestamp||P.timezone!==R.timezone),j=It(L,y,k),I=E.messages.length>0?`${E.messages.join(`
|
|
604
604
|
`)}
|
|
605
605
|
`:"";return await t?.hooks?.emitPost("post-revert",{mode:"revert",commitHash:y,hadConflicts:!1}),{stdout:`${I}${j}
|
|
606
606
|
${Y}`,stderr:"",exitCode:0}}})}async function jh(e,t){return await _(e,"REVERT_HEAD")?xn(e,t,{operationRef:"REVERT_HEAD",noOpError:N(`error: no cherry-pick or revert in progress
|
|
@@ -611,12 +611,12 @@ fatal: revert failed
|
|
|
611
611
|
fatal: revert failed
|
|
612
612
|
`,128)}async function Lh(e,t){let n=await _(e,"REVERT_HEAD");if(!n)return N(`error: no cherry-pick or revert in progress
|
|
613
613
|
fatal: revert failed
|
|
614
|
-
`,128);let r=await q(e),o=sn(r,"Committing");if(o)return o;let s=await Ce(e,"MERGE_MSG");if(!s){let E=await M(e,n);s=Ff(E,n)}let i=ve(r),a=await Ae(e,i),c=await Ke(e);if(S(c))return c;let f=await M(e,c),d=await Kt(e,t);if(S(d))return d;let u=await Ve(e,t);if(S(u))return u;let l=Ot(s),m=await ft(e,a,[c],d,u,l);await Tt(e),await jt(e);let h=await Z(e),p=oe(l),g=h?.type==="symbolic"?h.target:"HEAD";await
|
|
614
|
+
`,128);let r=await q(e),o=sn(r,"Committing");if(o)return o;let s=await Ce(e,"MERGE_MSG");if(!s){let E=await M(e,n);s=Ff(E,n)}let i=ve(r),a=await Ae(e,i),c=await Ke(e);if(S(c))return c;let f=await M(e,c),d=await Kt(e,t);if(S(d))return d;let u=await Ve(e,t);if(S(u))return u;let l=Ot(s),m=await ft(e,a,[c],d,u,l);await Tt(e),await jt(e);let h=await Z(e),p=oe(l),g=h?.type==="symbolic"?h.target:"HEAD";await te(e,t,g,c,m,`commit: ${p}`,h?.type==="symbolic");let w=h?.type==="symbolic"?we(h.target):"detached HEAD",k=await Yt(e,f.tree,a,d,u,d.timestamp!==u.timestamp||d.timezone!==u.timezone);return{stdout:`${It(w,m,s)}
|
|
615
615
|
${k}`,stderr:"",exitCode:0}}function Ff(e,t,n){let r=oe(e.message),o='Revert "',a=`${r.startsWith(o)&&r.endsWith('"')?`Reapply "${r.slice(o.length,-1)}"`:`Revert "${r}"`}
|
|
616
616
|
|
|
617
617
|
This reverts commit ${t}`;if(n!==void 0&&e.parents.length>1&&n>=1){let c=e.parents[n===1?1:0]??e.parents[0];a+=`, reversing
|
|
618
618
|
changes made to ${c}`}return a+=`.
|
|
619
|
-
`,a}
|
|
619
|
+
`,a}ne();Ee();se();de();ue();Ln();Ie();function Uf(e,t){e.command("rm",{description:"Remove files from the working tree and from the index",args:[B.string().name("paths").describe("Files to remove").optional().variadic()],options:{cached:H().describe("Only remove from the index"),recursive:H().alias("r").describe("Allow recursive removal when a directory name is given"),force:H().alias("f").describe("Override the up-to-date check"),dryRun:H().alias("n").describe("Don't actually remove any file(s)")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o,i=qe(s);if(i)return i;let a=s.workTree,c=n.paths;if(c.length===0)return N("usage: git rm [--cached] [-f] [-r] <file>...");let f=n.cached,d=n.recursive,u=n.force;if(t?.hooks){let w=await t.hooks.emitPre("pre-rm",{paths:c,cached:f,recursive:d,force:u});if(w)return{stdout:"",stderr:w.message??"",exitCode:1}}let l=await q(s),m=[],h=ct(s,r.cwd);for(let w of c){if(Un(w)){let x=[Ge(w,h)],C=l.entries.filter(P=>be(x,P.path));if(C.length===0)return O(`pathspec '${w}' did not match any files`);for(let P of C)m.push(P.path);continue}let k=xt(r.cwd,w),b=st(a,k);if((b==="."||b==="")&&(b=""),b.startsWith(".."))return O(`'${w}' is outside repository at '${a}'`);if(await r.fs.exists(k)&&!(await ot(r.fs,k)).isSymbolicLink&&(await ot(r.fs,k)).isDirectory){if(!d)return O(`not removing '${b}' recursively without -r`);let x=b===""?"":`${b}/`,C=l.entries.filter(P=>x===""||P.path.startsWith(x));if(C.length===0)return O(`pathspec '${w}' did not match any files`);for(let P of C)m.push(P.path)}else{if(!l.entries.some(C=>C.path===b))return O(`pathspec '${w}' did not match any files`);m.push(b)}}if(!u){let w=await Gh(s,l,m,f);if(w)return w}if(n.dryRun){let w=m.map(b=>`rm '${b}'`);return{stdout:w.length>0?`${w.join(`
|
|
620
620
|
`)}
|
|
621
621
|
`:"",stderr:"",exitCode:0}}let p=[];for(let w of m){if(l=nt(l,w),!f){let k=T(a,w);await ot(r.fs,k).then(()=>!0).catch(()=>!1)&&await r.fs.rm(k)}p.push(`rm '${w}'`)}await ce(s,l);let g=p.length>0?`${p.join(`
|
|
622
622
|
`)}
|
|
@@ -633,7 +633,7 @@ ${f}
|
|
|
633
633
|
`),d=c.length===1?"the following file has":"the following files have";return N(`error: ${d} local modifications:
|
|
634
634
|
${f}
|
|
635
635
|
(use --cached to keep the file, or -f to force removal)
|
|
636
|
-
`)}return null}
|
|
636
|
+
`)}return null}ne();se();en();gs();de();Ie();var Pi=new TextDecoder;function Bf(e,t){e.command("show",{description:"Show various types of objects",args:[B.string().name("object").variadic().optional()],handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o,a=n.object[0]??"HEAD",c=ya(a);if(c)return Nh(s,c.rev,c.path);if(a==="HEAD"){let u=await Ke(s);if(S(u))return u}let f=await $t(s,a,`bad object '${a}'`);if(S(f))return f;let d=await pe(s,f);switch(d.type){case"commit":{let u=await M(s,f);return{stdout:await Wf(s,f,u),stderr:"",exitCode:0}}case"tag":{let u=await la(s,f);return{stdout:await _h(s,u),stderr:"",exitCode:0}}case"tree":{let u=En(d.content);return{stdout:qf(u),stderr:"",exitCode:0}}case"blob":return{stdout:Pi.decode(d.content),stderr:"",exitCode:0}}}})}async function Nh(e,t,n){let r=await Te(e,t);if(S(r))return r;let o=r.commit.tree,s=n.replace(/^\//,""),a=(await fe(e,o)).get(s);if(!a){let f=`path '${s}' does not exist in '${t}'`;if(e.workTree){let d=T(e.workTree,s);await e.fs.exists(d)&&(f=`path '${s}' exists on disk, but not in '${t}'`)}return O(f)}let c=await pe(e,a.hash);if(c.type==="blob")return{stdout:Pi.decode(c.content),stderr:"",exitCode:0};if(c.type==="tree"){let f=En(c.content);return{stdout:qf(f),stderr:"",exitCode:0}}return{stdout:Pi.decode(c.content),stderr:"",exitCode:0}}async function Wf(e,t,n){let r=[];if(r.push(`commit ${t}`),n.parents.length>=2){let s=n.parents.map(i=>z(i)).join(" ");r.push(`Merge: ${s}`)}r.push(`Author: ${n.author.name} <${n.author.email}>`),r.push(`Date: ${Vt(n.author.timestamp,n.author.timezone)}`),r.push("");let o=n.message.replace(/\n$/,"");for(let s of o.split(`
|
|
637
637
|
`))r.push(` ${s}`);if(n.parents.length<=1){let s=n.parents.length===1?(await M(e,n.parents[0])).tree:null,i=await _e(e,s,n.tree),{remaining:a,renames:c}=await Qe(e,i),f=await Bh(e,a,c);f&&(r.push(""),r.push(f.replace(/\n$/,"")))}else{let s=await Wh(e,n);s?(r.push(""),r.push(s.replace(/\n$/,""))):r.push("")}return`${r.join(`
|
|
638
638
|
`)}
|
|
639
639
|
`}async function _h(e,t){let n=[];n.push(`tag ${t.name}`),n.push(`Tagger: ${t.tagger.name} <${t.tagger.email}>`),n.push(`Date: ${Vt(t.tagger.timestamp,t.tagger.timezone)}`),n.push("");let r=t.message.replace(/\n$/,"");for(let o of r.split(`
|
|
@@ -641,9 +641,9 @@ ${f}
|
|
|
641
641
|
`)}
|
|
642
642
|
`}function qf(e){let t=[];for(let n of e.entries){let r=n.mode==="040000"?"tree":"blob";t.push(`${n.mode} ${r} ${n.hash} ${n.name}`)}return t.length>0?`${t.join(`
|
|
643
643
|
`)}
|
|
644
|
-
`:""}async function Fh(e,t){let n=t.oldHash?await re(e,t.oldHash):"",r=t.newHash?await re(e,t.newHash):"";return yt({path:t.path,oldContent:n,newContent:r,oldMode:t.oldMode,newMode:t.newMode,oldHash:t.oldHash,newHash:t.newHash})}async function Uh(e,t){let n=t.oldHash?await re(e,t.oldHash):"",r=t.newHash?await re(e,t.newHash):"";return yt({path:t.oldPath,oldContent:n,newContent:r,oldMode:t.oldMode,newMode:t.newMode,oldHash:t.oldHash,newHash:t.newHash,renameTo:t.newPath,similarity:t.similarity})}async function Bh(e,t,n){let r=[];for(let s of t)r.push({type:"diff",entry:s});for(let s of n)r.push({type:"rename",entry:s});r.sort((s,i)=>{let a=s.type==="diff"?s.entry.path:s.entry.newPath,c=i.type==="diff"?i.entry.path:i.entry.newPath;return a<c?-1:a>c?1:0});let o="";for(let s of r)s.type==="rename"?o+=await Uh(e,s.entry):o+=await Fh(e,s.entry);return o}async function Wh(e,t){if(t.parents.length<2)return"";let n=await Promise.all(t.parents.map(async a=>{let c=await M(e,a);return fe(e,c.tree)})),r=await fe(e,t.tree),o=new Set;for(let a of n)for(let c of a.keys())o.add(c);for(let a of r.keys())o.add(a);let s=[];for(let a of o){let f=r.get(a)?.hash??null;n.every(u=>(u.get(a)?.hash??null)!==f)&&s.push(a)}if(s.sort(),s.length===0)return"";let i="";for(let a of s)i+=await qh(e,a,n,r);return i}async function qh(e,t,n,r){let o=r.get(t),s=n.map(l=>l.get(t)??null),i=o?.hash??null,a=o?.mode??null,c=s.map(l=>l?.hash??null),f=s.map(l=>l?.mode??null),d=await Promise.all(c.map(async l=>l?await re(e,l):"")),u=i?await re(e,i):"";return Qs({path:t,parentHashes:c,parentModes:f,parentContents:d,resultHash:i,resultMode:a,resultContent:u})}
|
|
644
|
+
`:""}async function Fh(e,t){let n=t.oldHash?await re(e,t.oldHash):"",r=t.newHash?await re(e,t.newHash):"";return yt({path:t.path,oldContent:n,newContent:r,oldMode:t.oldMode,newMode:t.newMode,oldHash:t.oldHash,newHash:t.newHash})}async function Uh(e,t){let n=t.oldHash?await re(e,t.oldHash):"",r=t.newHash?await re(e,t.newHash):"";return yt({path:t.oldPath,oldContent:n,newContent:r,oldMode:t.oldMode,newMode:t.newMode,oldHash:t.oldHash,newHash:t.newHash,renameTo:t.newPath,similarity:t.similarity})}async function Bh(e,t,n){let r=[];for(let s of t)r.push({type:"diff",entry:s});for(let s of n)r.push({type:"rename",entry:s});r.sort((s,i)=>{let a=s.type==="diff"?s.entry.path:s.entry.newPath,c=i.type==="diff"?i.entry.path:i.entry.newPath;return a<c?-1:a>c?1:0});let o="";for(let s of r)s.type==="rename"?o+=await Uh(e,s.entry):o+=await Fh(e,s.entry);return o}async function Wh(e,t){if(t.parents.length<2)return"";let n=await Promise.all(t.parents.map(async a=>{let c=await M(e,a);return fe(e,c.tree)})),r=await fe(e,t.tree),o=new Set;for(let a of n)for(let c of a.keys())o.add(c);for(let a of r.keys())o.add(a);let s=[];for(let a of o){let f=r.get(a)?.hash??null;n.every(u=>(u.get(a)?.hash??null)!==f)&&s.push(a)}if(s.sort(),s.length===0)return"";let i="";for(let a of s)i+=await qh(e,a,n,r);return i}async function qh(e,t,n,r){let o=r.get(t),s=n.map(l=>l.get(t)??null),i=o?.hash??null,a=o?.mode??null,c=s.map(l=>l?.hash??null),f=s.map(l=>l?.mode??null),d=await Promise.all(c.map(async l=>l?await re(e,l):"")),u=i?await re(e,i):"";return Qs({path:t,parentHashes:c,parentModes:f,parentContents:d,resultHash:i,resultMode:a,resultContent:u})}ne();Ee();se();ue();ne();ln();Ee();se();Jt();de();Le();ue();Ie();qt();Je();var Gt="refs/stash";function $i(e,t){return ke(e.replaceAll("/","\0"),t.replaceAll("/","\0"))}async function Kf(e){let t=await ze(e,Gt),n=[];for(let r=t.length-1;r>=0;r--){let o=t[r];o&&n.push({index:t.length-1-r,hash:o.newHash,message:o.message})}return n}async function mr(e,t){let n=await ze(e,Gt);if(n.length===0)return null;let r=n.length-1-t;return r<0||r>=n.length?null:n[r]?.newHash??null}async function zf(e,t,n,r){if(!e.workTree)throw new Error("Cannot stash in a bare repository");let o=e.workTree,s=await X(e);if(!s)return null;let i=await M(e,s),a=await q(e),c=ve(a),f=await Ae(e,c),d=await _e(e,i.tree,f),u=new Map(c.map(D=>[D.path,D])),l=await Ze(e,o,"",{skipIgnore:!0}),m=!1;for(let D of l){let K=u.get(D);if(!K)continue;let ie=T(o,D),ee=await e.fs.readFileBuffer(ie);if(await pt("blob",ee)!==K.hash){m=!0;break}}if(!m)for(let[D]of u){let K=T(o,D);if(!await e.fs.exists(K)){m=!0;break}}let h=[];if(r?.includeUntracked){let D=await Ze(e,o,"");for(let K of D)u.has(K)||h.push(K)}if(d.length===0&&!m&&h.length===0)return null;let p=await ns(e,t),g=await wr(e,t),w=await Z(e),k=w?.type==="symbolic"?we(w.target):"(no branch)",b=z(s),E=oe(i.message),x=`index on ${k}: ${b} ${E}
|
|
645
645
|
`,C=Bt({type:"commit",tree:f,parents:[s],author:p,committer:g,message:x}),P=await Re(e,"commit",C),R=await fe(e,i.tree),y=[],$=new Set;for(let D of l){let K=u.get(D),ie=R.get(D);if(!K&&!ie)continue;let ee=T(o,D),me=await e.fs.readFileBuffer(ee),je=await Re(e,"blob",me),Xt=K?K.mode:parseInt(ie?.mode??"100644",8);y.push({path:D,mode:Xt,hash:je,stage:0,stat:xe()}),$.add(D)}for(let[D,K]of u)$.has(D)||R.has(D)||y.push({path:D,mode:K.mode,hash:K.hash,stage:0,stat:xe()});let v=await Ae(e,y),G=null;if(r?.includeUntracked){let D=[];for(let me of h){let je=T(o,me),Xt=await e.fs.readFileBuffer(je),Se=await Re(e,"blob",Xt);D.push({path:me,mode:33188,hash:Se,stage:0,stat:xe()})}let K=await Ae(e,D),ie=`untracked files on ${k}: ${b} ${E}
|
|
646
|
-
`,ee=Bt({type:"commit",tree:K,parents:[],author:p,committer:g,message:ie});G=await Re(e,"commit",ee)}let L=n?`On ${k}: ${n}`:`WIP on ${k}: ${b} ${E}`,Y=[s,P];G&&Y.push(G);let j=Bt({type:"commit",tree:v,parents:Y,author:p,committer:g,message:L}),I=await Re(e,"commit",j),A=await mr(e,0)??J;await Ue(e,Gt,{oldHash:A,newHash:I,name:g.name,email:g.email,timestamp:g.timestamp,tz:g.timezone,message:L.trimEnd()}),await V(e,Gt,I);let W=await rn(e,i.tree,a);await ce(e,{version:2,entries:W.newEntries}),await Oe(e,W.worktreeOps),(await Z(e))?.type==="symbolic"&&await
|
|
646
|
+
`,ee=Bt({type:"commit",tree:K,parents:[],author:p,committer:g,message:ie});G=await Re(e,"commit",ee)}let L=n?`On ${k}: ${n}`:`WIP on ${k}: ${b} ${E}`,Y=[s,P];G&&Y.push(G);let j=Bt({type:"commit",tree:v,parents:Y,author:p,committer:g,message:L}),I=await Re(e,"commit",j),A=await mr(e,0)??J;await Ue(e,Gt,{oldHash:A,newHash:I,name:g.name,email:g.email,timestamp:g.timestamp,tz:g.timezone,message:L.trimEnd()}),await V(e,Gt,I);let W=await rn(e,i.tree,a);await ce(e,{version:2,entries:W.newEntries}),await Oe(e,W.worktreeOps),(await Z(e))?.type==="symbolic"&&await te(e,t,"HEAD",s,s,"reset: moving to HEAD");for(let D of["CHERRY_PICK_HEAD","MERGE_HEAD","ORIG_HEAD","REVERT_HEAD"])await le(e,D);for(let D of["MERGE_MSG","MERGE_MODE"]){let K=T(e.gitDir,D);await e.fs.exists(K)&&await e.fs.rm(K)}if(h.length>0)for(let D of h){if(R.has(D))continue;let K=T(o,D);await e.fs.exists(K)&&(await e.fs.rm(K),await _n(e.fs,Nt(K),o))}return I}async function Ri(e,t){let n=e.workTree,r=await M(e,t),o=await We(e,r.tree),s=[];for(let i of o){let a=T(n,i.path);await e.fs.exists(a)?s.push(i.path):await rt(e,i)}return s.length>0?(s.sort($i),{ok:!1,stdout:"",stderr:`${s.map(i=>`${i} already exists, no checkout`).join(`
|
|
647
647
|
`)}
|
|
648
648
|
error: could not restore untracked files from stash
|
|
649
649
|
`,exitCode:1}):{ok:!0,hasConflicts:!1,messages:[]}}async function Ii(e,t=0){if(!e.workTree)return{ok:!1,stdout:"",stderr:`fatal: this operation must be run in a work tree
|
|
@@ -685,18 +685,18 @@ Please move or remove them before you merge.
|
|
|
685
685
|
`:"",s=await et(e),i=r.hasConflicts?1:0;return{stdout:`${o}${s}`,stderr:"",exitCode:i}}async function Yh(e){let t=await Kf(e);return t.length===0?{stdout:"",stderr:"",exitCode:0}:{stdout:`${t.map(r=>`stash@{${r.index}}: ${r.message}`).join(`
|
|
686
686
|
`)}
|
|
687
687
|
`,stderr:"",exitCode:0}}async function Xh(e,t){let n=co(t);if(n<0)return N(`error: '${t}' is not a valid stash reference`);let r=await mr(e,n);if(!r)return N(`error: stash@{${n}} is not a valid reference`);let o=await Oi(e,n);return o?N(o):{stdout:`Dropped ${t?`stash@{${n}}`:`refs/stash@{${n}}`} (${r})
|
|
688
|
-
`,stderr:"",exitCode:0}}async function Zh(e,t){let n=co(t);if(n<0)return N(`error: '${t}' is not a valid stash reference`);let r=await mr(e,n);if(!r)return N(`error: stash@{${n}} is not a valid reference`);let o=await M(e,r),s=o.parents[0];if(!s)return N("error: invalid stash commit (no parent)");let i=await M(e,s),a=await _e(e,i.tree,o.tree),c="";for(let f of a)c+=await Kh(e,f);return{stdout:c,stderr:"",exitCode:0}}async function Jh(e){return await Vf(e),{stdout:"",stderr:"",exitCode:0}}
|
|
688
|
+
`,stderr:"",exitCode:0}}async function Zh(e,t){let n=co(t);if(n<0)return N(`error: '${t}' is not a valid stash reference`);let r=await mr(e,n);if(!r)return N(`error: stash@{${n}} is not a valid reference`);let o=await M(e,r),s=o.parents[0];if(!s)return N("error: invalid stash commit (no parent)");let i=await M(e,s),a=await _e(e,i.tree,o.tree),c="";for(let f of a)c+=await Kh(e,f);return{stdout:c,stderr:"",exitCode:0}}async function Jh(e){return await Vf(e),{stdout:"",stderr:"",exitCode:0}}ne();Ee();ue();Je();function Zf(e,t){e.command("status",{description:"Show the working tree status",options:{short:H().alias("s").describe("Give the output in the short-format"),porcelain:H().describe("Give the output in a machine-parseable format"),branch:H().alias("b").describe("Show the branch in short-format output")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o;if(!n.short&&!n.porcelain)return{stdout:await et(s),stderr:"",exitCode:0};let i=await Z(s),a=await X(s),c;i&&i.type==="symbolic"?c=we(i.target):c="HEAD detached";let f=await q(s),d=Ko(f),u=await qo(s,a,f,d),l=await Rt(s,f),m=[],h=[];for(let k of l)k.status==="untracked"?h.push(k.path):m.push({path:k.path,status:k.status});m.sort((k,b)=>ke(k.path,b.path));let p=new Set(f.entries.map(k=>k.path)),g=zo(h,p);return{stdout:np(c,u,m,d,g,n.branch),stderr:"",exitCode:0}}})}var Qh={"both modified":"UU","both added":"AA","both deleted":"DD","deleted by us":"DU","deleted by them":"UD","added by us":"AU","added by them":"UA",unmerged:"UU"};function ep(e){switch(e){case"new file":return"A";case"modified":return"M";case"deleted":return"D";case"renamed":return"R";default:return" "}}function tp(e){switch(e){case"modified":return"M";case"deleted":return"D";default:return" "}}function np(e,t,n,r,o,s){let i=[];s&&(e==="HEAD detached"?i.push("## HEAD (no branch)"):i.push(`## ${e}`));let a=new Map(r.map(l=>[l.path,l])),c=new Map(t.map(l=>[l.path,l])),f=new Map(n.map(l=>[l.path,l])),d=new Set;for(let l of r)d.add(l.path);for(let l of t)d.add(l.path);for(let l of n)d.add(l.path);let u=[...d].sort();for(let l of u){let m=a.get(l);if(m){let k=Qh[m.status]??"UU";i.push(`${k} ${Vr(l)}`);continue}let h=c.get(l),p=f.get(l),g=h?ep(h.status):" ",w=p?tp(p.status):" ";if(h?.status==="renamed"&&h.displayPath){let k=h.displayPath.indexOf(" -> "),b=h.displayPath.slice(0,k),E=h.displayPath.slice(k+4);i.push(`${g}${w} ${Vr(b)} -> ${Vr(E)}`)}else i.push(`${g}${w} ${Vr(l)}`)}for(let l of o)i.push(`?? ${Vr(l)}`);return i.length===0?"":`${i.join(`
|
|
689
689
|
`)}
|
|
690
|
-
`}function Vr(e){return!/[ \t"\\]/.test(e)&&!/[^\x20-\x7E]/.test(e)?e:`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\t/g,"\\t").replace(/\n/g,"\\n")}"`}
|
|
690
|
+
`}function Vr(e){return!/[ \t"\\]/.test(e)&&!/[^\x20-\x7E]/.test(e)?e:`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\t/g,"\\t").replace(/\n/g,"\\n")}"`}ne();Xe();Ee();se();Le();ue();Ie();qt();function rp(e,t){return e?.type==="symbolic"?e.target.replace(/^refs\/heads\//,""):t??J}function Qf(e,t){e.command("switch",{description:"Switch branches",args:[B.string().name("branch-or-start-point").describe("Branch to switch to, or start-point for -c/-C").optional()],options:{create:Q.string().alias("c").describe("Create and switch to a new branch"),forceCreate:Q.string().alias("C").describe("Create/reset and switch to a branch"),detach:H().alias("d").describe("Detach HEAD at named commit"),orphan:Q.string().describe("Create a new orphan branch"),guess:H().default(!0).describe("Guess branch from remote tracking")},handler:async(n,r,o)=>{let s=await U(r.fs,r.cwd,t);if(S(s))return s;let i=s,a=n["branch-or-start-point"];if(n.orphan)return n.create||n.forceCreate?O("--orphan and -c/-C are incompatible"):n.detach?O("--orphan and --detach are incompatible"):ap(i,n.orphan,r.env,t);if(n.detach){if(n.create||n.forceCreate)return O("--detach and -c/-C are incompatible");let d=a??"HEAD",u=await Te(i,d,`invalid reference: ${d}`);return S(u)?u:ip(i,d,u.hash,r.env,t)}if(n.create||n.forceCreate){let d=n.create||n.forceCreate,u=a??(o.passthrough.length>0?o.passthrough[0]:void 0);return Jf(i,d,!!n.forceCreate,u,r.env,t)}if(!a)return O("missing branch or commit argument");if(a==="-")return sp(i,r.env,t);let c=`refs/heads/${a}`,f=await _(i,c);if(f)return ed(i,a,c,f,r.env,t);if(n.guess!==!1){let d=await op(i,a);if(d)return Jf(i,a,!1,d.startPoint,r.env,t,d.trackingRef)}return O(`invalid reference: ${a}`)}})}async function Yr(e){return await Ce(e,"CHERRY_PICK_HEAD")?O(`cannot switch branch while cherry-picking
|
|
691
691
|
Consider "git cherry-pick --quit" or "git worktree add".`):await Ce(e,"MERGE_HEAD")?O(`cannot switch branch while merging
|
|
692
692
|
Consider "git merge --quit" or "git worktree add".`):await Ce(e,"REVERT_HEAD")?O(`cannot switch branch while reverting
|
|
693
693
|
Consider "git revert --quit" or "git worktree add".`):await Ht(e)?O(`cannot switch branch while rebasing
|
|
694
|
-
Consider "git rebase --quit" or "git worktree add".`):null}async function sp(e,t,n){let r=await Yr(e);if(r)return r;let o=await Ms(e);return o?ed(e,o.name,o.refName,o.hash,t,n):O("no previous branch")}async function op(e,t){let n=await ge(e,"refs/remotes"),r=[];for(let s of n){let i=s.name.replace(/^refs\/remotes\//,"").split("/"),a=i[0];i.length>=2&&a&&i.slice(1).join("/")===t&&r.push({remote:a,ref:s.name})}let o=r.length===1?r[0]:void 0;return o?{startPoint:o.ref,trackingRef:o.ref}:null}async function Jf(e,t,n,r,o,s,i){let a=`refs/heads/${t}`,c=await _(e,a);if(c&&!n)return O(`a branch named '${t}' already exists`);let f;if(r){let y=await Te(e,r,`invalid reference: ${r}`);if(S(y))return y;f=y.hash}else{let y=await X(e);if(!y){let $=await Z(e),v=$?.type==="symbolic"?$.target.replace(/^refs\/heads\//,""):"";n&&c&&await le(e,a),await Fe(e,"HEAD",a),await dt(e);let G=await an(e);return await
|
|
695
|
-
${G}`,exitCode:0}}f=y}let d=await Yr(e);if(d)return d;let u=await X(e),l=await q(e);if(r){let y=Pn(l);if(y)return y}let m=await M(e,f);if(u&&u!==f){let y=await M(e,u);if(y.tree!==m.tree){let $=await kn(e,y.tree,m.tree,l);if(!$.success)return $.errorOutput??N("error: checkout would overwrite local changes");l={version:2,entries:$.newEntries},await ce(e,l),await Oe(e,$.worktreeOps)}}let h=await Z(e),p="";h?.type==="direct"&&u&&(p=await Gs(e,u,f));let g=rp(h,u);await V(e,a,f),await Fe(e,"HEAD",a),await dt(e);let w=await an(e),k=r??"HEAD";n&&c?c!==f&&await
|
|
694
|
+
Consider "git rebase --quit" or "git worktree add".`):null}async function sp(e,t,n){let r=await Yr(e);if(r)return r;let o=await Ms(e);return o?ed(e,o.name,o.refName,o.hash,t,n):O("no previous branch")}async function op(e,t){let n=await ge(e,"refs/remotes"),r=[];for(let s of n){let i=s.name.replace(/^refs\/remotes\//,"").split("/"),a=i[0];i.length>=2&&a&&i.slice(1).join("/")===t&&r.push({remote:a,ref:s.name})}let o=r.length===1?r[0]:void 0;return o?{startPoint:o.ref,trackingRef:o.ref}:null}async function Jf(e,t,n,r,o,s,i){let a=`refs/heads/${t}`,c=await _(e,a);if(c&&!n)return O(`a branch named '${t}' already exists`);let f;if(r){let y=await Te(e,r,`invalid reference: ${r}`);if(S(y))return y;f=y.hash}else{let y=await X(e);if(!y){let $=await Z(e),v=$?.type==="symbolic"?$.target.replace(/^refs\/heads\//,""):"";n&&c&&await le(e,a),await Fe(e,"HEAD",a),await dt(e);let G=await an(e);return await te(e,o,"HEAD",null,J,`checkout: moving from ${v} to ${t}`),{stdout:"",stderr:`Switched to a new branch '${t}'
|
|
695
|
+
${G}`,exitCode:0}}f=y}let d=await Yr(e);if(d)return d;let u=await X(e),l=await q(e);if(r){let y=Pn(l);if(y)return y}let m=await M(e,f);if(u&&u!==f){let y=await M(e,u);if(y.tree!==m.tree){let $=await kn(e,y.tree,m.tree,l);if(!$.success)return $.errorOutput??N("error: checkout would overwrite local changes");l={version:2,entries:$.newEntries},await ce(e,l),await Oe(e,$.worktreeOps)}}let h=await Z(e),p="";h?.type==="direct"&&u&&(p=await Gs(e,u,f));let g=rp(h,u);await V(e,a,f),await Fe(e,"HEAD",a),await dt(e);let w=await an(e),k=r??"HEAD";n&&c?c!==f&&await te(e,o,a,c,f,`branch: Reset to ${k}`):await te(e,o,a,null,f,`branch: Created from ${k}`),await te(e,o,"HEAD",u,f,`checkout: moving from ${g} to ${t}`);let b=i?.replace(/^refs\/remotes\//,"").split("/");if(b){let y=b[0]??"",$=`refs/heads/${b.slice(1).join("/")}`,v=await he(e);v[`branch "${t}"`]={...v[`branch "${t}"`],remote:y,merge:$},await Ye(e,v)}await s?.hooks?.emitPost("post-checkout",{prevHead:u,newHead:f,isBranchCheckout:!0});let E=n&&c?`Switched to and reset branch '${t}'
|
|
696
696
|
`:`Switched to a new branch '${t}'
|
|
697
697
|
`,x=p+E+w;if(b){let y=b.slice(1).join("/");x+=`branch '${t}' set up to track '${b[0]}/${y}'.
|
|
698
698
|
`}let C="";r&&(C=await Kn(e,m.tree,l));let P=await he(e),R=await on(e,P,t);return R&&(C+=qn(R)),{stdout:C,stderr:x,exitCode:0}}async function ed(e,t,n,r,o,s){let i=await Yr(e);return i||ir(e,t,n,r,o,s)}async function ip(e,t,n,r,o){let s=await Yr(e);return s||Rn(e,n,r,o)}async function ap(e,t,n,r){let o=await Yr(e);if(o)return o;let s=`refs/heads/${t}`;if(await _(e,s))return O(`a branch named '${t}' already exists`);let a=await q(e),c=Pn(a);if(c)return c;let f=await X(e),d=await Z(e),u="";if(d?.type==="direct"&&f&&(u=await Vo(e,f)),e.workTree){let m=f?(await M(e,f)).tree:null,h=await Ae(e,[]),p=await kn(e,m,h,a);if(!p.success)return p.errorOutput??N("error: checkout would overwrite local changes");await Oe(e,p.worktreeOps)}await ce(e,Wi()),await Fe(e,"HEAD",s),await dt(e);let l=await an(e);return await r?.hooks?.emitPost("post-checkout",{prevHead:f,newHead:J,isBranchCheckout:!0}),{stdout:"",stderr:`${u}Switched to a new branch '${t}'
|
|
699
|
-
${l}`,exitCode:0}}
|
|
699
|
+
${l}`,exitCode:0}}ne();se();Cr();ue();ws();function nd(e,t){e.command("tag",{description:"Create, list, or delete tags",args:[B.string().name("name").describe("Tag name to create or delete").optional(),B.string().name("commit").describe("Commit to tag (defaults to HEAD)").optional()],options:{annotate:H().alias("a").describe("Make an annotated tag object"),message:Q.string().alias("m").describe("Tag message"),delete:H().alias("d").describe("Delete a tag"),force:H().alias("f").describe("Replace an existing tag"),list:Q.string().alias("l").describe("List tags matching pattern")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o;if(n.delete){if(!n.name)return O("tag name required");let i=`refs/tags/${n.name}`,a=await _(s,i);return a?(await le(s,i),{stdout:`Deleted tag '${n.name}' (was ${z(a)})
|
|
700
700
|
`,stderr:"",exitCode:0}):N(`error: tag '${n.name}' not found.
|
|
701
701
|
`)}if(n.list!==void 0)return td(s,n.list||void 0);if(n.name){let i=n.commit,a;if(i){let u=await $t(s,i,`Failed to resolve '${i}' as a valid ref.`);if(S(u))return u;a=u}else if(a=await X(s),!a)return O("Failed to resolve 'HEAD' as a valid ref.");let c=`refs/tags/${n.name}`;if(await _(s,c)&&!n.force)return O(`tag '${n.name}' already exists`);if(n.annotate||n.message){if(!n.message)return O("no tag message specified (use -m)");let u=await Ve(s,r.env);if(S(u))return u;let l=Ot(n.message),m=da({type:"tag",object:a,objectType:"commit",name:n.name,tagger:u,message:l}),h=await Re(s,"tag",m);await V(s,c,h)}else await V(s,c,a);return{stdout:"",stderr:"",exitCode:0}}return td(s)}})}async function td(e,t){let n=await ge(e,"refs/tags");if(n.length===0)return{stdout:"",stderr:"",exitCode:0};let r=n.map(o=>o.name.replace("refs/tags/",""));return t&&(r=r.filter(o=>Gn(t,o,0)===0)),r.length===0?{stdout:"",stderr:"",exitCode:0}:{stdout:`${r.join(`
|
|
702
702
|
`)}
|