āĻ‡āĻ‚āĻ°ā§‡āĻœāĻŋāĻĢāĻ°āĻžāĻ¸āĻŋāĻ¸ā§āĻĒā§āĻ¯āĻžāĻ¨āĻŋāĻļ

Ad


āĻ…āĻ¨āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•āĻ¸ āĻĢā§‡āĻ­āĻŋāĻ•āĻ¨

git-receive-pack - āĻ•ā§āĻ˛āĻžāĻ‰āĻĄā§‡ āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨

āĻ‰āĻŦā§āĻ¨ā§āĻŸā§ āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨, āĻĢā§‡āĻĄā§‹āĻ°āĻž āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨, āĻ‰āĻ‡āĻ¨ā§āĻĄā§‹āĻœ āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨ āĻāĻŽā§āĻ˛ā§‡āĻŸāĻ° āĻŦāĻž MAC OS āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨ āĻāĻŽā§āĻ˛ā§‡āĻŸāĻ°ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ OnWorks āĻĢā§āĻ°āĻŋ āĻšā§‹āĻ¸ā§āĻŸāĻŋāĻ‚ āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻ•āĻžāĻ°ā§€āĻ¤ā§‡ āĻ—āĻŋāĻŸ-āĻ°āĻŋāĻ¸āĻŋāĻ­-āĻĒā§āĻ¯āĻžāĻ• āĻšāĻžāĻ˛āĻžāĻ¨

āĻāĻŸāĻŋ āĻšāĻ˛ āĻ—āĻŋāĻŸ-āĻ°āĻŋāĻ¸āĻŋāĻ­-āĻĒā§āĻ¯āĻžāĻ• āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ¯āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻŦāĻŋāĻ¨āĻžāĻŽā§‚āĻ˛ā§āĻ¯ā§‡āĻ° āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨ āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•āĻ¸ā§āĻŸā§‡āĻļāĻ¨ āĻ¯ā§‡āĻŽāĻ¨ āĻ‰āĻŦā§āĻ¨ā§āĻŸā§ āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨, āĻĢā§‡āĻĄā§‹āĻ°āĻž āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨, āĻ‰āĻ‡āĻ¨ā§āĻĄā§‹āĻœ āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨ āĻāĻŽā§āĻ˛ā§‡āĻŸāĻ° āĻŦāĻž MAC OS āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨ āĻāĻŽā§āĻ˛ā§‡āĻŸāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ OnWorks āĻĢā§āĻ°āĻŋ āĻšā§‹āĻ¸ā§āĻŸāĻŋāĻ‚ āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻ•āĻžāĻ°ā§€āĻ¤ā§‡ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹ āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

āĻ•āĻžāĻ°ā§āĻ¯āĻ•ā§āĻ°āĻŽ:

NAME āĻāĻ°


git-receive-pack - āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§‡ āĻ¯āĻž āĻĒā§āĻļ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¤āĻž āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°ā§āĻ¨

āĻ¸āĻžāĻ‡āĻ¨ā§‹āĻĒāĻŋāĻ¸āĻŋāĻ¸


git-āĻ°āĻŋāĻ¸āĻŋāĻ­-āĻĒā§āĻ¯āĻžāĻ•

āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻƒ


āĻĻā§āĻŦāĻžāĻ°āĻž āĻ†āĻŽāĻ¨ā§āĻ¤ā§āĻ°āĻŋāĻ¤ āĻĢāĻžāĻ˛āĻ¤ā§ āĻŦāĻž āĻāĻ˛ā§‡āĻŦā§‡āĻ˛ā§‡ āĻ˛ā§‹āĻ• āĻĒāĻžāĻ āĻžāĻ¨-āĻĒā§āĻ¯āĻžāĻ• āĻāĻŦāĻ‚ āĻĨā§‡āĻ•ā§‡ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻ¤āĻĨā§āĻ¯ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°ā§‡
āĻĻā§‚āĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤

āĻāĻ‡ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻļā§‡āĻˇ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ†āĻšā§āĻŦāĻžāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ UI āĻšāĻ˛
āĻ‰āĻĒāĻ°ā§‡ āĻĢāĻžāĻ˛āĻ¤ā§ āĻŦāĻž āĻāĻ˛ā§‡āĻŦā§‡āĻ˛ā§‡ āĻ˛ā§‹āĻ• āĻĒāĻžāĻ āĻžāĻ¨-āĻĒā§āĻ¯āĻžāĻ• āĻ¸āĻžāĻ‡āĻĄ, āĻāĻŦāĻ‚ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽ āĻĒā§‡āĻ¯āĻŧāĻžāĻ°āĻŸāĻŋ āĻ†āĻĒāĻĄā§‡āĻŸāĻ—ā§āĻ˛āĻŋ āĻĒā§āĻļ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ
āĻĻā§‚āĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛āĨ¤ āĻŸāĻžāĻ¨ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ āĻœāĻ¨ā§āĻ¯, āĻĻā§‡āĻ–ā§āĻ¨ git-fatch-pack(1).

āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻŸāĻŋ sha1 refs (āĻšā§‡āĻĄāĻ¸/āĻŸā§āĻ¯āĻžāĻ—) āĻ¤ā§ˆāĻ°āĻŋ āĻāĻŦāĻ‚ āĻĻā§āĻ°ā§āĻ¤ āĻĢāĻ°ā§‹āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ
āĻĻā§‚āĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤ (āĻ•āĻ ā§‹āĻ°āĻ­āĻžāĻŦā§‡ āĻŦāĻ˛āĻ¤ā§‡ āĻ—ā§‡āĻ˛ā§‡, āĻāĻŸāĻŋ āĻ¸ā§āĻĨāĻžāĻ¨ā§€āĻ¯āĻŧ āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤ git-āĻ°āĻŋāĻ¸āĻŋāĻ­-āĻĒā§āĻ¯āĻžāĻ• āĻšāĻ˛ā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻ•āĻžāĻ›ā§‡
āĻ¸ā§‡āĻ¨ā§āĻĄ-āĻĒā§āĻ¯āĻžāĻ• āĻļā§‡āĻˇā§‡ āĻ•ā§‡ āĻŦāĻ¸ā§‡ āĻ†āĻ›ā§‡, āĻ°āĻŋāĻŽā§‹āĻŸ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻ›ā§‡āĨ¤ āĻŦāĻŋāĻ­ā§āĻ°āĻžāĻ¨ā§āĻ¤?)

āĻ†āĻĒāĻĄā§‡āĻŸ āĻāĻŦāĻ‚ āĻĒā§‹āĻ¸ā§āĻŸ-āĻ†āĻĒāĻĄā§‡āĻŸ āĻšā§āĻ• āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ-āĻŦāĻŋāĻļā§āĻŦā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ—ā§‡āĻ›ā§‡
āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨/āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĨ¤

git-āĻ°āĻŋāĻ¸āĻŋāĻ­-āĻĒā§āĻ¯āĻžāĻ• honours receive.denyNonFastForwards āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻ…āĻĒāĻļāĻ¨, āĻ¯āĻž āĻ¯āĻĻāĻŋ āĻ¤āĻž āĻŦāĻ˛ā§‡
āĻāĻ•āĻŸāĻŋ āĻ°ā§‡āĻĢā§‡āĻ° āĻ†āĻĒāĻĄā§‡āĻŸāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ…āĻ¸ā§āĻŦā§€āĻ•āĻžāĻ° āĻ•āĻ°āĻž āĻ‰āĻšāĻŋāĻ¤ āĻ¯āĻĻāĻŋ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻĻā§āĻ°ā§āĻ¤-āĻĢāĻ°āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ¨āĻž āĻšāĻ¯āĻŧāĨ¤

āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ



āĻ¸āĻŋāĻ™ā§āĻ• āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛āĨ¤

āĻĒā§āĻ°āĻžāĻ•-āĻĒā§āĻ°āĻžāĻĒā§āĻ¤āĻŋ HOOK


āĻ¯ā§‡āĻ•ā§‹āĻ¨ āĻ°ā§‡āĻĢāĻžāĻ°ā§‡āĻ¨ā§āĻ¸ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻžāĻ° āĻ†āĻ—ā§‡, āĻ¯āĻĻāĻŋ $GIT_DIR/hooks/pre-receive āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻĨāĻžāĻ•ā§‡ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻŸā§‡āĻŦāĻ˛ āĻšāĻ¯āĻŧ,
āĻ•ā§‹āĻ¨ā§‹ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻ›āĻžāĻĄāĻŧāĻž āĻāĻ•āĻŦāĻžāĻ° āĻ†āĻšā§āĻŦāĻžāĻ¨ āĻ•āĻ°āĻž āĻšāĻŦā§‡āĨ¤ āĻšā§āĻ•ā§‡āĻ° āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻ‡āĻ¨āĻĒā§āĻŸ āĻšāĻŦā§‡ āĻāĻ• āĻ˛āĻžāĻ‡āĻ¨
āĻĒā§āĻ°āĻ¤āĻŋ āĻ°ā§‡āĻĢāĻžāĻ°ā§‡āĻ¨ā§āĻ¸ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻž āĻšāĻŦā§‡:

sha1-āĻĒā§āĻ°āĻžāĻ¤āĻ¨ SP sha1-āĻ¨āĻ¤ā§āĻ¨ SP āĻ°āĻŋāĻĢāĻ¨āĻžāĻŽ LF

refname āĻŽāĻžāĻ¨ $GIT_DIR āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ†āĻĒā§‡āĻ•ā§āĻˇāĻŋāĻ•; āĻ¯ā§‡āĻŽāĻ¨ āĻŽāĻžāĻ¸ā§āĻŸāĻžāĻ° āĻšā§‡āĻĄā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻŸāĻŋ
"āĻ°ā§‡āĻĢāĻ¸/āĻšā§‡āĻĄāĻ¸/āĻŽāĻžāĻ¸ā§āĻŸāĻžāĻ°"āĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ refname āĻāĻ° āĻ†āĻ—ā§‡ āĻĻā§āĻŸāĻŋ sha1 āĻŽāĻžāĻ¨ āĻšāĻ˛ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡āĻ° āĻ¨āĻžāĻŽ
āĻ†āĻĒāĻĄā§‡āĻŸā§‡āĻ° āĻ†āĻ—ā§‡ āĻāĻŦāĻ‚ āĻĒāĻ°ā§‡ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¨āĻžāĻŽ āĻĻāĻŋāĻ¨āĨ¤ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ°ā§‡āĻĢā§‡āĻ° sha1-āĻĒā§āĻ°āĻžāĻ¤āĻ¨ āĻšāĻŦā§‡ 0{40} āĻāĻ° āĻ¸āĻŽāĻžāĻ¨,
āĻŽā§āĻ›ā§‡ āĻĢā§‡āĻ˛āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ°ā§‡āĻĢā§‡āĻ° sha1-āĻ¨āĻ¤ā§āĻ¨ 0{40} āĻāĻ° āĻ¸āĻŽāĻžāĻ¨ āĻšāĻŦā§‡, āĻ…āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ sha1-āĻĒā§āĻ°āĻžāĻ¤āĻ¨ āĻāĻŦāĻ‚
sha1-āĻ¨āĻ¤ā§āĻ¨ āĻ°āĻŋāĻĒā§‹āĻœāĻŋāĻŸāĻ°āĻŋāĻ¤ā§‡ āĻŦā§ˆāĻ§ āĻŦāĻ¸ā§āĻ¤ā§ āĻšāĻ“āĻ¯āĻŧāĻž āĻ‰āĻšāĻŋāĻ¤āĨ¤

āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŦāĻžāĻ•ā§āĻˇāĻ°āĻŋāĻ¤ āĻ§āĻžāĻ•ā§āĻ•āĻž āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ (āĻĻā§‡āĻ–ā§āĻ¨ git-āĻ§āĻžāĻ•ā§āĻ•āĻž(1)), āĻ¸ā§āĻŦāĻžāĻ•ā§āĻˇāĻ°āĻŋāĻ¤ āĻĒā§āĻļ āĻ¸āĻžāĻ°ā§āĻŸāĻŋāĻĢāĻŋāĻ•ā§‡āĻŸ āĻāĻ•āĻŸāĻŋ āĻ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ
blob āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻŦā§‡āĻļ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛ GIT_PUSH_CERT āĻāĻ° āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡āĻ° āĻ¨āĻžāĻŽā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻĻā§‡āĻ–āĻž
āĻāĻ•āĻŸāĻŋ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§‹āĻ¸ā§āĻŸ-āĻ°āĻŋāĻ¸āĻŋāĻ­ āĻšā§āĻ•ā§‡āĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĨ¤ āĻ āĻ›āĻžāĻĄāĻŧāĻž āĻ¸āĻžāĻ°ā§āĻŸāĻŋāĻĢāĻŋāĻ•ā§‡āĻŸ āĻ¤ā§‹ āĻ†āĻ›ā§‡āĻ‡
GPG āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¯āĻžāĻšāĻžāĻ‡ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻĒāĻ°āĻŋāĻŦā§‡āĻļ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡:

GIT_PUSH_CERT_SIGNER
āĻ§āĻžāĻ•ā§āĻ•āĻž āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ¸āĻ‡ āĻ•āĻ°āĻž āĻšāĻžāĻŦāĻŋāĻ° āĻŽāĻžāĻ˛āĻŋāĻ•ā§‡āĻ° āĻ¨āĻžāĻŽ āĻ“ āĻ‡-āĻŽā§‡āĻ‡āĻ˛ āĻ āĻŋāĻ•āĻžāĻ¨āĻž
āĻļāĻ‚āĻ¸āĻžāĻĒāĻ¤ā§āĻ°āĨ¤

GIT_PUSH_CERT_KEY
āĻĒā§āĻļ āĻļāĻ‚āĻ¸āĻžāĻĒāĻ¤ā§āĻ°ā§‡ āĻ¸ā§āĻŦāĻžāĻ•ā§āĻˇāĻ°āĻ•āĻžāĻ°ā§€ āĻ•ā§€āĻŸāĻŋāĻ° GPG āĻ•ā§€ āĻ†āĻ‡āĻĄāĻŋāĨ¤

GIT_PUSH_CERT_STATUS
āĻĒā§āĻļ āĻ¸āĻžāĻ°ā§āĻŸāĻŋāĻĢāĻŋāĻ•ā§‡āĻŸā§‡āĻ° GPG āĻ¯āĻžāĻšāĻžāĻ‡āĻ•āĻ°āĻŖā§‡āĻ° āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ, āĻāĻ•āĻ‡ āĻŽā§‡āĻŽā§‹āĻ¨āĻŋāĻ• āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡
%G āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ? āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āĻ° āĻ—āĻŋāĻŸ āĻ˛āĻ— āĻĒāĻ°āĻŋāĻŦāĻžāĻ°ā§‡āĻ° āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ (āĻĻā§‡āĻ–ā§āĻ¨ git-log(1))āĨ¤

GIT_PUSH_CERT_NONCE
āĻ¨āĻ¨āĻ¸ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻŸāĻŋ āĻ¸ā§āĻŦāĻžāĻ•ā§āĻˇāĻ°āĻ•āĻžāĻ°ā§€āĻ•ā§‡ āĻĒā§āĻļ āĻļāĻ‚āĻ¸āĻžāĻĒāĻ¤ā§āĻ°ā§‡ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻŦāĻ˛ā§‡āĻ›ā§‡āĨ¤ āĻ¯āĻĻāĻŋ
āĻāĻŸāĻŋ āĻĒā§āĻļ āĻ¸āĻžāĻ°ā§āĻŸāĻŋāĻĢāĻŋāĻ•ā§‡āĻŸā§‡āĻ° "nonce" āĻļāĻŋāĻ°ā§‹āĻ¨āĻžāĻŽā§‡ āĻ°ā§‡āĻ•āĻ°ā§āĻĄ āĻ•āĻ°āĻž āĻŽāĻžāĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻŽā§‡āĻ˛ā§‡ āĻ¨āĻž,
āĻāĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¯ā§‡ āĻļāĻ‚āĻ¸āĻžāĻĒāĻ¤ā§āĻ°āĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻŦā§ˆāĻ§ āĻ¯āĻž āĻāĻ•āĻŸāĻŋ āĻĨā§‡āĻ•ā§‡ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻĒā§āĻ˛ā§‡ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡ā§ˇ
āĻĒā§ƒāĻĨāĻ• "āĻ—āĻŋāĻŸ āĻĒā§āĻļ" āĻ¸ā§‡āĻļāĻ¨āĨ¤

GIT_PUSH_CERT_NONCE_STATUS

āĻ…āĻ¯āĻžāĻšāĻŋāĻ¤
"git push --signed" āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¨ā§āĻ¸ āĻĒāĻžāĻ āĻŋāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯āĻ–āĻ¨ āĻ†āĻŽāĻ°āĻž āĻāĻŸāĻŋāĻ•ā§‡ āĻĒāĻžāĻ āĻžāĻ¤ā§‡ āĻŦāĻ˛āĻŋāĻ¨āĻŋāĨ¤

āĻ¨āĻŋāĻ–ā§‹āĻāĻœ
"git push --signed" āĻ•ā§‹āĻ¨ā§‹ āĻ¨āĻ¨ā§āĻ¸ āĻšā§‡āĻĄāĻžāĻ° āĻĒāĻžāĻ āĻžāĻ¯āĻŧāĻ¨āĻŋāĨ¤

āĻ–āĻžāĻ°āĻžāĻĒ
"git push --signed" āĻāĻ•āĻŸāĻŋ āĻœāĻžāĻ˛ āĻ¨āĻ¨ā§āĻ¸ āĻĒāĻžāĻ āĻŋāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

OK
"git push --signed" āĻ¨āĻ¨ā§āĻ¸ āĻĒāĻžāĻ āĻŋāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ†āĻŽāĻ°āĻž āĻāĻŸāĻŋ āĻĒāĻžāĻ āĻžāĻ¤ā§‡ āĻŦāĻ˛ā§‡āĻ›āĻŋāĨ¤

SLOP
"git push --signed" āĻĒāĻžāĻ āĻŋāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ†āĻŽāĻ°āĻž āĻāĻ–āĻ¨ āĻ¯āĻž āĻĒāĻžāĻ āĻžāĻ¤ā§‡ āĻŦāĻ˛ā§‡āĻ›āĻŋ āĻ¤āĻžāĻ° āĻĨā§‡āĻ•ā§‡ āĻ†āĻ˛āĻžāĻĻāĻž āĻ¨āĻ¯āĻŧ, āĻ•āĻŋāĻ¨ā§āĻ¤ā§
āĻ†āĻ—ā§‡āĻ° āĻ¸ā§‡āĻļāĻ¨ā§‡āĨ¤ GIT_PUSH_CERT_NONCE_SLOP āĻĒāĻ°āĻŋāĻŦā§‡āĻļ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛ āĻĻā§‡āĻ–ā§āĻ¨āĨ¤

GIT_PUSH_CERT_NONCE_SLOP
"git push --signed" āĻ†āĻŽāĻ°āĻž āĻāĻ–āĻ¨ āĻ¯āĻž āĻĒāĻžāĻ āĻžāĻ¤ā§‡ āĻŦāĻ˛ā§‡āĻ›āĻŋ āĻ¤āĻžāĻ° āĻĨā§‡āĻ•ā§‡ āĻ†āĻ˛āĻžāĻĻāĻž āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¨āĻ¸ āĻĒāĻžāĻ āĻŋāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ•āĻŸāĻŋāĻ¤ā§‡
āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ¸ā§‡āĻļāĻ¨ āĻ¯āĻžāĻ° āĻļā§āĻ°ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĨā§‡āĻ•ā§‡ āĻāĻ‡ āĻ…āĻ¨ā§‡āĻ• āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ†āĻ˛āĻžāĻĻāĻž
āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ…āĻ§āĻŋāĻŦā§‡āĻļāĻ¨āĨ¤ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ…āĻ°ā§āĻĨāĻĒā§‚āĻ°ā§āĻŖ āĻ¯āĻ–āĻ¨ GIT_PUSH_CERT_NONCE_STATUS SLOP āĻŦāĻ˛ā§‡āĨ¤ āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ āĻĒāĻĄāĻŧāĻž
get.certNonceSlop āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ git-config(1).

āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ āĻ°āĻŋāĻĢāĻ¨ā§‡āĻŽ āĻ†āĻĒāĻĄā§‡āĻŸ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻ†āĻ—ā§‡ āĻāĻŦāĻ‚ āĻĻā§āĻ°ā§āĻ¤-āĻĢāĻ°ā§‹āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻšā§‡āĻ• āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻ†āĻ—ā§‡ āĻāĻ‡ āĻšā§āĻ•āĻŸāĻŋāĻ•ā§‡ āĻĄāĻžāĻ•āĻž āĻšāĻ¯āĻŧ
āĻ¸āĻžā§āĻšāĻžāĻ˛āĻŋāĻ¤āĨ¤

āĻ¯āĻĻāĻŋ āĻĒā§āĻ°āĻŋ-āĻ°āĻŋāĻ¸āĻŋāĻ­ āĻšā§āĻ• āĻ¨āĻ¨-āĻœāĻŋāĻ°ā§‹ āĻāĻ•ā§āĻ¸āĻŋāĻŸ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻžāĻ¸ āĻ¸āĻš āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻ•āĻ°ā§‡ āĻ¤āĻŦā§‡ āĻ•ā§‹āĻ¨ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻž āĻšāĻŦā§‡ āĻ¨āĻž,
āĻāĻŦāĻ‚ āĻ†āĻĒāĻĄā§‡āĻŸ, āĻĒā§‹āĻ¸ā§āĻŸ-āĻ°āĻŋāĻ¸āĻŋāĻ­ āĻāĻŦāĻ‚ āĻĒā§‹āĻ¸ā§āĻŸ-āĻ†āĻĒāĻĄā§‡āĻŸ āĻšā§āĻ•āĻ—ā§āĻ˛āĻŋāĻ“ āĻ†āĻšā§āĻŦāĻžāĻ¨ āĻ•āĻ°āĻž āĻšāĻŦā§‡ āĻ¨āĻžāĨ¤ āĻāĻŸāĻž āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡
āĻ†āĻĒāĻĄā§‡āĻŸāĻŸāĻŋ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤ āĻ¨āĻž āĻšāĻ˛ā§‡ āĻĻā§āĻ°ā§āĻ¤ āĻŦā§‡āĻ˛ āĻ†āĻ‰āĻŸ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĻāĻ°āĻ•āĻžāĻ°ā§€āĨ¤

āĻšāĻžāĻ˛āĻ¨āĻžāĻ—āĻžāĻĻ HOOK


āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ°ā§‡āĻĢ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻžāĻ° āĻ†āĻ—ā§‡, āĻ¯āĻĻāĻŋ $GIT_DIR/hooks/update āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻĨāĻžāĻ•ā§‡ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ¤āĻž āĻšāĻ˛
āĻ¤āĻŋāĻ¨āĻŸāĻŋ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻ¸āĻš āĻĒā§āĻ°āĻ¤āĻŋ āĻ°ā§‡āĻĢāĻžāĻ°ā§‡ āĻāĻ•āĻŦāĻžāĻ° āĻ†āĻšā§āĻŦāĻžāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡:

$GIT_DIR/hooks/update refname sha1-āĻĒā§āĻ°āĻžāĻ¤āĻ¨ sha1-āĻ¨āĻ¤ā§āĻ¨

refname āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ°āĻŸāĻŋ $GIT_DIR āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ†āĻĒā§‡āĻ•ā§āĻˇāĻŋāĻ•; āĻ¯ā§‡āĻŽāĻ¨ āĻŽāĻžāĻ¸ā§āĻŸāĻžāĻ° āĻšā§‡āĻĄā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻŸāĻŋ
"āĻ°ā§‡āĻĢāĻ¸/āĻšā§‡āĻĄāĻ¸/āĻŽāĻžāĻ¸ā§āĻŸāĻžāĻ°"āĨ¤ āĻĻā§āĻŸāĻŋ sha1 āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸ āĻšāĻ˛ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡āĻ° āĻ¨āĻžāĻŽ āĻ¯āĻž āĻ†āĻ—ā§‡ refname āĻāĻ° āĻœāĻ¨ā§āĻ¯
āĻāĻŦāĻ‚ āĻ†āĻĒāĻĄā§‡āĻŸā§‡āĻ° āĻĒāĻ°ā§‡āĨ¤ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–ā§āĻ¯ āĻ¯ā§‡ refname āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻžāĻ° āĻ†āĻ—ā§‡ āĻšā§āĻ• āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ‡
āĻšāĻ¯āĻŧ sha1-āĻĒā§āĻ°āĻžāĻ¤āĻ¨ āĻšāĻ˛ 0{40} (āĻ…āĻ°ā§āĻĨāĻžā§Ž āĻāĻ–āĻ¨āĻ“ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻŽāĻ¨ āĻ•ā§‹āĻ¨āĻ“ āĻ°ā§‡āĻĢ āĻ¨ā§‡āĻ‡), āĻ…āĻĨāĻŦāĻž āĻāĻŸāĻŋ āĻ¯āĻž
āĻĒā§āĻ¨āĻƒāĻ¨āĻžāĻŽā§‡ āĻ°ā§‡āĻ•āĻ°ā§āĻĄ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻšā§āĻ•āĻŸāĻŋ āĻ¨āĻ¨-āĻœāĻŋāĻ°ā§‹ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻžāĻ¸ āĻ¸āĻš āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻ•āĻ°āĻž āĻ‰āĻšāĻŋāĻ¤ āĻ¯āĻĻāĻŋ āĻāĻŸāĻŋ āĻ¨āĻžāĻŽāĻ¯ā§āĻ•ā§āĻ¤ āĻ°ā§‡āĻĢ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻ¨āĻž āĻĻāĻŋāĻ¤ā§‡ āĻšāĻžāĻ¯āĻŧāĨ¤
āĻ…āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ āĻāĻŸāĻŋ āĻļā§‚āĻ¨ā§āĻ¯ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻ•āĻ°āĻž āĻ‰āĻšāĻŋāĻ¤āĨ¤

āĻāĻ‡ āĻšā§āĻ•ā§‡āĻ° āĻ¸āĻĢāĻ˛ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻš (āĻāĻ•āĻŸāĻŋ āĻļā§‚āĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ) āĻ°ā§‡āĻĢ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°āĻŦā§‡ āĻ¨āĻž
āĻ†āĻ¸āĻ˛ā§‡ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻž, āĻāĻŸāĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ•āĻŸāĻŋ āĻĒā§‚āĻ°ā§āĻŦāĻļāĻ°ā§āĻ¤. āĻ¯ā§‡āĻŽāĻ¨ āĻāĻŸāĻŋ āĻĒāĻžāĻ āĻžāĻ¨ā§‹ āĻāĻ•āĻŸāĻŋ āĻ­āĻžāĻ˛ āĻ§āĻžāĻ°āĻŖāĻž āĻ¨āĻ¯āĻŧ
āĻāĻ‡ āĻšā§āĻ• āĻĨā§‡āĻ•ā§‡ āĻ¨ā§‹āĻŸāĻŋāĻļ (āĻ¯ā§‡āĻŽāĻ¨ āĻ‡āĻŽā§‡āĻ˛)āĨ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻĒā§‹āĻ¸ā§āĻŸ-āĻ°āĻŋāĻ¸āĻŋāĻ­ āĻšā§āĻ• āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ•āĻĨāĻž āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°ā§āĻ¨āĨ¤

āĻĒā§‹āĻ¸ā§āĻŸ-āĻĒā§āĻ°āĻžāĻĒā§āĻ¤āĻŋ HOOK


āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ°ā§‡āĻĢ āĻ†āĻĒāĻĄā§‡āĻŸ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻĒāĻ°ā§‡ (āĻŦāĻž āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡), āĻ¯āĻĻāĻŋ āĻ•ā§‹āĻ¨āĻ“ āĻ°ā§‡āĻĢ āĻ†āĻĒāĻĄā§‡āĻŸ āĻšāĻ¯āĻŧ
āĻ¸āĻĢāĻ˛ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻāĻŦāĻ‚ āĻ¯āĻĻāĻŋ $GIT_DIR/hooks/post-receive āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻĨāĻžāĻ•ā§‡ āĻāĻŦāĻ‚ āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻŸā§‡āĻŦāĻ˛ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ¤āĻž āĻšāĻŦā§‡
āĻ•ā§‹āĻ¨ā§‹ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻ›āĻžāĻĄāĻŧāĻž āĻāĻ•āĻŦāĻžāĻ° āĻ†āĻšā§āĻŦāĻžāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻšā§āĻ•ā§‡āĻ° āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻ‡āĻ¨āĻĒā§āĻŸ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ˛āĻžāĻ‡āĻ¨ āĻšāĻŦā§‡
āĻ¸āĻĢāĻ˛āĻ­āĻžāĻŦā§‡ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ°ā§‡āĻĢāĻžāĻ°ā§‡āĻ¨ā§āĻ¸:

sha1-āĻĒā§āĻ°āĻžāĻ¤āĻ¨ SP sha1-āĻ¨āĻ¤ā§āĻ¨ SP āĻ°āĻŋāĻĢāĻ¨āĻžāĻŽ LF

refname āĻŽāĻžāĻ¨ $GIT_DIR āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ†āĻĒā§‡āĻ•ā§āĻˇāĻŋāĻ•; āĻ¯ā§‡āĻŽāĻ¨ āĻŽāĻžāĻ¸ā§āĻŸāĻžāĻ° āĻšā§‡āĻĄā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻŸāĻŋ
"āĻ°ā§‡āĻĢāĻ¸/āĻšā§‡āĻĄāĻ¸/āĻŽāĻžāĻ¸ā§āĻŸāĻžāĻ°"āĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ refname āĻāĻ° āĻ†āĻ—ā§‡ āĻĻā§āĻŸāĻŋ sha1 āĻŽāĻžāĻ¨ āĻšāĻ˛ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡āĻ° āĻ¨āĻžāĻŽ
āĻ†āĻĒāĻĄā§‡āĻŸā§‡āĻ° āĻ†āĻ—ā§‡ āĻāĻŦāĻ‚ āĻĒāĻ°ā§‡ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¨āĻžāĻŽ āĻĻāĻŋāĻ¨āĨ¤ āĻ¯ā§‡ āĻ°ā§‡āĻĢāĻ—ā§āĻ˛āĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋāĻ° sha1-āĻĒā§āĻ°āĻžāĻ¤āĻ¨ āĻ¸āĻŽāĻžāĻ¨ āĻšāĻŦā§‡ā§ˇ
0{40}, āĻ¯āĻĻāĻŋāĻ“ āĻŽā§āĻ›ā§‡ āĻĢā§‡āĻ˛āĻž āĻ°ā§‡āĻĢā§‡āĻ° sha1-āĻ¨āĻ¤ā§āĻ¨ āĻšāĻŦā§‡ 0{40} āĻāĻ° āĻ¸āĻŽāĻžāĻ¨, āĻ…āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ sha1-āĻĒā§āĻ°āĻžāĻ¤āĻ¨
āĻāĻŦāĻ‚ sha1-āĻ¨āĻ¤ā§āĻ¨ āĻ°āĻŋāĻĒā§‹āĻœāĻŋāĻŸāĻ°āĻŋāĻ¤ā§‡ āĻŦā§ˆāĻ§ āĻŦāĻ¸ā§āĻ¤ā§ āĻšāĻ“āĻ¯āĻŧāĻž āĻ‰āĻšāĻŋāĻ¤āĨ¤

GIT_PUSH_CERT* āĻĒāĻ°āĻŋāĻŦā§‡āĻļ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ āĻĒāĻ°āĻŋāĻĻāĻ°ā§āĻļāĻ¨ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ āĻŋāĻ• āĻ¯ā§‡āĻŽāĻ¨ āĻĒā§āĻ°āĻŋ-āĻ°āĻŋāĻ¸āĻŋāĻ­ āĻšā§āĻ•ā§‡,
āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŦāĻžāĻ•ā§āĻˇāĻ°āĻŋāĻ¤ āĻ§āĻžāĻ•ā§āĻ•āĻž āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°ā§‡āĨ¤

āĻāĻ‡ āĻšā§āĻ• āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡, āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§‡āĻ° āĻ†āĻĒāĻĄā§‡āĻŸāĻ—ā§āĻ˛āĻŋ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ•āĻ°ā§‡ āĻŽā§‡āĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ¸āĻšāĻœāĨ¤
āĻāĻ‡ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖā§‡āĻ° āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸāĻŸāĻŋ āĻĒā§āĻ°āĻ¤āĻŋ āĻ°ā§‡āĻĢā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻŽā§‡āĻ‡āĻ˛ ​​āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĒāĻžāĻ āĻžāĻ¯āĻŧ āĻ¯āĻžāĻ¤ā§‡ āĻ•āĻŽāĻŋāĻŸāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ ā§‡āĻ˛ā§‡ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ
āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛, āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ­āĻžāĻ˛ āĻ¸ā§āĻŦāĻžāĻ•ā§āĻˇāĻ° āĻ¸āĻš āĻ¸ā§āĻŦāĻžāĻ•ā§āĻˇāĻ°āĻŋāĻ¤ āĻĒā§āĻļā§‡āĻ° āĻĒā§āĻļ āĻ¸āĻžāĻ°ā§āĻŸāĻŋāĻĢāĻŋāĻ•ā§‡āĻŸ āĻ˛āĻ— āĻ•āĻ°ā§‡
āĻ˛āĻ—āĻžāĻ° āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž:

#!/ āĻŦāĻŋāĻ¨ / SH
# āĻŽā§‡āĻ˛ āĻ†āĻ‰āĻŸ āĻ•āĻŽāĻŋāĻŸ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ¤āĻĨā§āĻ¯.
āĻ“āĻ­āĻžāĻ˛ nval āĻ°ā§‡āĻĢ āĻĒāĻĄāĻŧāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ
do
āĻ¯āĻĻāĻŋ expr "$oval" : '0*$' >/dev/null
āĻ¤āĻžāĻ°āĻĒāĻ°
āĻ‡āĻ•ā§‹ "āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻ•āĻŽāĻŋāĻŸ āĻ¸āĻš āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ°ā§‡āĻĢ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĻ›ā§‡:"
āĻ—āĻŋāĻŸ āĻ°ā§‡āĻ­-āĻ˛āĻŋāĻ¸ā§āĻŸ -- āĻ¸ā§āĻ¨ā§āĻĻāĻ° "$nval"
āĻ†āĻ°
āĻĒā§āĻ°āĻ¤āĻŋāĻ§ā§āĻŦāĻ¨āĻŋ "āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋ:"
git rev-list --pretty "$nval" "^$oval"
fi |
āĻŽā§‡āĻ‡āĻ˛ -s "āĻ°ā§‡āĻĢ $āĻ°ā§‡āĻĢā§‡āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨" commit-list@mydomain
āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨
# āĻ˛āĻ— āĻ¸ā§āĻŦāĻžāĻ•ā§āĻˇāĻ°āĻŋāĻ¤ āĻĒā§āĻļ āĻ¸āĻžāĻ°ā§āĻŸāĻŋāĻĢāĻŋāĻ•ā§‡āĻŸ, āĻ¯āĻĻāĻŋ āĻĨāĻžāĻ•ā§‡
āĻ¯āĻĻāĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž -n "${GIT_PUSH_CERT-}" && āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž ${GIT_PUSH_CERT_STATUS} = G
āĻ¤āĻžāĻ°āĻĒāĻ°
(
āĻĒā§āĻ°āĻ¤āĻŋāĻ§ā§āĻŦāĻ¨āĻŋ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻ¨āĻ¨ā§āĻ¸ āĻšāĻ˛ ${GIT_PUSH_NONCE}
git cat-file blob ${GIT_PUSH_CERT}
) | āĻŽā§‡āĻ˛ -s "$GIT_PUSH_CERT_SIGNER āĻĨā§‡āĻ•ā§‡ āĻĒā§āĻļ āĻ¸āĻžāĻ°ā§āĻŸāĻŋāĻĢāĻŋāĻ•ā§‡āĻŸ" push-log@mydomain
fi
āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ 0

āĻāĻ‡ āĻšā§āĻ• āĻ†āĻšāĻŦāĻžāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻ•ā§‹āĻĄ āĻ‰āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻŦā§‡ āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¨-āĻœāĻŋāĻ°ā§‹ āĻāĻ•ā§āĻ¸āĻŋāĻŸ āĻ•ā§‹āĻĄ āĻšāĻŦā§‡
āĻāĻ•āĻŸāĻŋ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨āĨ¤

āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻŦā§‡āĻ¨ āĻ¯ā§‡ āĻāĻ‡ āĻšā§āĻ•āĻŸāĻŋ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻ¸āĻŽāĻ¯āĻŧ refname āĻāĻ° sha1-āĻ¨āĻ¤ā§āĻ¨ āĻ¨āĻž āĻĨāĻžāĻ•āĻž āĻ¸āĻŽā§āĻ­āĻŦāĨ¤ āĻāĻŸāĻž āĻĒāĻžāĻ°ā§‡
āĻ¸āĻšāĻœā§‡āĻ‡ āĻ˜āĻŸāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¯āĻĻāĻŋ āĻ…āĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻ°ā§‡āĻĢāĻŸāĻŋ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°ā§‡ āĻ¸āĻ‚āĻļā§‹āĻ§āĻ¨ āĻ•āĻ°ā§‡ git-āĻ°āĻŋāĻ¸āĻŋāĻ­-āĻĒā§āĻ¯āĻžāĻ•,
āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻ—ā§‡ āĻšā§āĻ• āĻāĻŸāĻž āĻŽā§‚āĻ˛ā§āĻ¯āĻžāĻ¯āĻŧāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ āĻ›āĻŋāĻ˛. āĻāĻŸāĻŋ āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯ā§‡ āĻšā§āĻ•āĻ—ā§āĻ˛āĻŋ sha1-āĻ¨āĻ¤ā§āĻ¨ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°ā§‡
āĻ°āĻŋāĻĢāĻ¨ā§‡āĻŽā§‡āĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻŽāĻžāĻ¨ā§‡āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡āĨ¤

āĻĒā§‹āĻ¸ā§āĻŸ-āĻ†āĻĒāĻĄā§‡āĻŸ HOOK


āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖā§‡āĻ° āĻĒāĻ°ā§‡, āĻ¯āĻĻāĻŋ āĻ…āĻ¨ā§āĻ¤āĻ¤ āĻāĻ•āĻŸāĻŋ āĻ°ā§‡āĻĢ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻŦāĻ‚ āĻ¯āĻĻāĻŋ
$GIT_DIR/hooks/post-update āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ, āĻ¤āĻžāĻ°āĻĒāĻ° āĻĒā§‹āĻ¸ā§āĻŸ-āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ˛ āĻ•āĻ°āĻž āĻšāĻŦā§‡
āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŽāĻ¨ āĻ°ā§‡āĻĢā§‡āĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻ¸āĻšāĨ¤ āĻāĻŸāĻŋ āĻ•ā§‹āĻ¨ā§‹ āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡
āĻŦā§āĻ¯āĻžāĻĒāĻ• āĻĒāĻ°āĻŋāĻšā§āĻ›āĻ¨ā§āĻ¨āĻ¤āĻžāĻ° āĻ•āĻžāĻœāĨ¤

āĻāĻ‡ āĻšā§āĻ• āĻ†āĻšā§āĻŦāĻžāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻ•ā§‹āĻĄ āĻ‰āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ; āĻāĻ•āĻŽāĻžāĻ¤ā§āĻ° āĻœāĻŋāĻ¨āĻŋāĻ¸ āĻŦāĻžāĻ•āĻŋ āĻ†āĻ›ā§‡
git-āĻ°āĻŋāĻ¸āĻŋāĻ­-āĻĒā§āĻ¯āĻžāĻ• āĻ¯ā§‡ āĻŦāĻŋāĻ¨ā§āĻĻā§āĻ¤ā§‡ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¨āĻŋāĻœā§‡āĻ•ā§‡ āĻ¯ā§‡āĻ­āĻžāĻŦā§‡āĻ‡ āĻšā§‹āĻ• āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ.

āĻāĻ‡ āĻšā§āĻ•āĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻšāĻ˛ā§‡ āĻ—āĻŋāĻŸ āĻ†āĻĒāĻĄā§‡āĻŸ-āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°-āĻ¤āĻĨā§āĻ¯ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯
āĻŦāĻ¸ā§āĻ¤āĻžāĻŦāĻ¨ā§āĻĻā§€ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻŽā§‚āĻ• āĻĒāĻ°āĻŋāĻŦāĻšāĻ¨ āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻĒāĻ°āĻŋāĻŦā§‡āĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧ.

#!/ āĻŦāĻŋāĻ¨ / SH
exec git āĻ†āĻĒāĻĄā§‡āĻŸ-āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°-āĻ¤āĻĨā§āĻ¯

onworks.net āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨ā§‡ git-receive-pack āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨


āĻŦāĻŋāĻ¨āĻžāĻŽā§‚āĻ˛ā§āĻ¯ā§‡ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻāĻŦāĻ‚ āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•āĻ¸ā§āĻŸā§‡āĻļāĻ¨

āĻ‰āĻ‡āĻ¨ā§āĻĄā§‹āĻœ āĻāĻŦāĻ‚ āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ āĻ…ā§āĻ¯āĻžāĻĒ āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄ āĻ•āĻ°ā§āĻ¨

āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻ—ā§āĻ˛āĻŋ

Ad