ā§¯.ā§¨ āĻāĻŋāĻ āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ – āĻāĻŋāĻ-āĻ āĻŽāĻžāĻāĻā§āĻ°ā§āĻ āĻāĻ°āĻž
āĻāĻŋāĻ āĻ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻž
āĻāĻĒāĻ¨āĻžāĻ° āĻ¯āĻĻāĻŋ āĻ āĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻā§āĻĄāĻŦā§āĻ¸ āĻāĻŋāĻ¸āĻŋāĻāĻ¸ -āĻ āĻĨāĻžāĻā§ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨ā§āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻā§āĻā§āĻāĻāĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻ āĻ āĻ§ā§āĻ¯āĻžā§ā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŋāĻā§ āĻāĻŽā§āĻĒā§āĻ°ā§āĻāĻžāĻ° āĻ¨āĻŋā§ā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻŦā§ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ° āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻŦā§ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻāĻžāĻ¸ā§āĻāĻŽ āĻāĻŽā§āĻĒā§āĻ°ā§āĻāĻžāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻļāĻŋāĻāĻŦā§āĻ¨ āĻā§āĻāĻžāĻŦā§ āĻĒā§āĻļāĻžāĻĻāĻžāĻ°āĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻāĻ¸āĻ¸āĻŋāĻāĻŽ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĨā§āĻā§ āĻĄāĻžāĻāĻž āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ, āĻāĻžāĻ°āĻŖ āĻ¤āĻžāĻ°āĻž āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¯āĻžāĻ°āĻž āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻā§ āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻšāĻžāĻ-āĻā§ā§āĻžāĻ˛āĻŋāĻāĻŋ āĻā§āĻ˛āĻ¸ āĻ¸āĻšāĻā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤āĻ¸āĻžāĻŦāĻāĻžāĻ°ā§āĻ¸āĻ¨
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻŋāĻ āĻāĻ¸āĻāĻŋāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻ¸ā§āĻāĻļāĻ¨āĻāĻŋ āĻĒāĻĄāĻŧā§ āĻĨāĻžāĻā§āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻŋ āĻ¸āĻšāĻā§āĻ āĻāĻāĻāĻŋ āĻ°āĻŋāĻĒā§āĻāĻŋāĻā§āĻ°āĻŋ āĻāĻŋāĻ āĻāĻ¸āĻāĻŋāĻāĻ¨ āĻā§āĻ˛ā§āĻ¨ āĻāĻ°āĻ¤ā§ āĻ¸ā§āĻ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻ°āĻĒāĻ° āĻ¸āĻžāĻŦāĻāĻžāĻ°ā§āĻ¸āĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻŦāĻ¨ā§āĻ§ āĻāĻ°ā§āĻ¨, āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻāĻŋāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻĒā§āĻļ āĻĻāĻŋāĻ¨ āĻāĻŦāĻ āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻļā§āĻ°ā§ āĻāĻ°ā§āĻ¨āĨ¤ āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻšāĻŋāĻ¸ā§āĻāĻ°āĻŋ āĻāĻžāĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻ¤ āĻ¤āĻžāĻĄāĻŧāĻžāĻ¤āĻžāĻĄāĻŧāĻŋ āĻ¸āĻŽā§āĻāĻŦ āĻ¸āĻžāĻŦāĻāĻžāĻ°āĻ¸āĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻĒā§āĻ˛ āĻāĻ°ā§ āĻāĻ¨āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ (āĻ¯āĻž āĻāĻŋāĻā§ āĻ¸āĻŽāĻ¯āĻŧ āĻ˛āĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§)āĨ¤ āĻ¤āĻŦā§, āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻžāĻāĻž āĻ¸āĻ āĻŋāĻ āĻ¸āĻŋāĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻž, āĻāĻžāĻ°āĻŖ āĻāĻāĻžāĻ¤ā§ āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻļāĻŋ āĻ˛āĻžāĻā§āĨ¤ āĻĒā§āĻ°āĻĨāĻŽ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ āĻĨāĻ° āĻāĻ° āĻ¤āĻĨā§āĻ¯āĨ¤ āĻ¸āĻžāĻŦāĻāĻžāĻ°ā§āĻ¸āĻ¨ā§ āĻ¯āĻžāĻĻā§āĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻāĻāĻāĻžāĻ° āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻĨāĻžāĻā§ āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§āĻā§āĻ° āĻāĻŽāĻŋāĻ āĻ°ā§āĻāĻ°ā§āĻĄ āĻāĻ°ā§ āĻ°āĻžāĻāĻž āĻšāĻ¯āĻŧāĨ¤ āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻ¸ā§āĻāĻļāĻ¨ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋ āĻāĻŋāĻā§ āĻāĻžāĻ¯āĻŧāĻāĻžāĻ¯āĻŧ schacon āĻĻā§āĻāĻžāĻ¯āĻŧ, āĻ¯ā§āĻŽāĻ¨ āĻŦā§āĻ˛ā§āĻŽ āĻāĻāĻāĻĒā§āĻ āĻāĻŦāĻ git svn logāĨ¤Â āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻāĻŋāĻā§ āĻāĻ°āĻ āĻāĻžāĻ˛ āĻāĻŋāĻ āĻ āĻĨāĻ° āĻāĻ° āĻĄā§āĻāĻžāĻ¤ā§ āĻŽā§āĻ¯āĻžāĻĒ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨ āĻ¤āĻŦā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¸āĻžāĻŦāĻāĻžāĻ°ā§āĻ¸āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻĨā§āĻā§ āĻāĻŋāĻ āĻ āĻĨāĻ° āĻāĻ° āĻāĻžāĻā§ āĻāĻāĻāĻŋ āĻŽā§āĻ¯āĻžāĻĒāĻŋāĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤ user.txt āĻ¨āĻžāĻŽā§ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ āĻ¯āĻžāĻ¤ā§ āĻāĻ āĻŽā§āĻ¯āĻžāĻĒāĻŋāĻ āĻāĻŋ āĻāĻāĻ°āĻāĻŽā§āĻ° āĻšā§:
schacon = Scott Chacon
selse = Someone Else
āĻāĻ¸āĻāĻŋāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ āĻĨāĻ° āĻāĻ° āĻ¨āĻžāĻŽā§āĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒā§āĻ¤ā§, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋ āĻ°āĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
$ svn log --xml --quiet | grep author | sort -u | \
perl -pe 's/.*>(.*?)<.*/$1 = /'
āĻāĻāĻŋ XML āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻā§ āĻ˛āĻ āĻāĻāĻāĻĒā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§, āĻ¤āĻžāĻ°āĻĒāĻ° āĻ āĻĨāĻ° āĻāĻ° āĻ¤āĻĨā§āĻ¯ āĻ¸āĻš āĻ˛āĻžāĻāĻ¨āĻā§āĻ˛āĻŋ āĻ°āĻžāĻā§, āĻĄā§āĻĒā§āĻ˛āĻŋāĻā§āĻāĻā§āĻ˛āĻŋ āĻŦāĻžāĻ¤āĻŋāĻ˛ āĻāĻ°ā§, XML āĻā§āĻ¯āĻžāĻāĻā§āĻ˛āĻŋ āĻŦā§āĻ° āĻāĻ°ā§ āĻĻā§āĻ¯āĻŧ ā§ˇ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻā§āĻ°ā§āĻĒ, āĻļāĻ°ā§āĻ āĻāĻŦāĻ āĻĒāĻžāĻ°ā§āĻ˛ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻ¸āĻš āĻāĻāĻāĻŋ āĻŽā§āĻļāĻŋāĻ¨ā§ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ°ā§, āĻ¸ā§āĻ āĻāĻāĻāĻĒā§āĻāĻāĻŋāĻā§ āĻāĻĒāĻ¨āĻžāĻ° user.txt āĻĢāĻžāĻāĻ˛ā§ āĻ°āĻŋāĻĄāĻžāĻāĻ°ā§āĻā§āĻ āĻāĻ°ā§āĻ¨ āĻ¯āĻžāĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻ¨ā§āĻā§āĻ°āĻŋāĻ° āĻĒāĻžāĻļā§ āĻāĻāĻāĻ°āĻāĻŽ āĻāĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻĄā§āĻāĻž āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻŦāĻŋāĻāĻĻā§āĻ°āĻ
āĻāĻĒāĻ¨āĻŋ āĻāĻ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻāĻŋāĻ āĻāĻ¸āĻāĻŋāĻāĻ¨ -āĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¯āĻžāĻ¤ā§ āĻāĻāĻŋ āĻ āĻĨāĻ° āĻāĻ° āĻĄā§āĻāĻž āĻāĻ°āĻ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻŽā§āĻ¯āĻžāĻĒ āĻāĻ°āĻ¤ā§ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻāĻ°ā§āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻā§āĻ˛ā§āĻ¨ āĻŦāĻž init āĻāĻŽāĻžāĻ¨ā§āĻĄā§ –no-metadata āĻĒāĻžāĻ¸ āĻāĻ°ā§ āĻ¸āĻžāĻŦāĻāĻžāĻ°ā§āĻ¸āĻ¨ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ¯ā§ āĻŽā§āĻāĻžāĻĄā§āĻāĻž āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°ā§ āĻ¤āĻž āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻŋ āĻāĻŋāĻ āĻāĻ¸āĻāĻŋāĻāĻ¨ -āĻā§ āĻŦāĻ˛āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻŋāĻ āĻ˛āĻāĻā§ āĻŦā§āĻ˛ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻŋāĻā§āĻāĻž āĻ āĻ¸ā§āĻĒāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻŦāĻŋāĻāĻĻā§āĻ°āĻ
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻāĻ¨ āĻāĻŋāĻ āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋāĻ¤ā§ āĻāĻ°āĻž āĻāĻŽāĻŋāĻ āĻā§āĻ˛āĻŋāĻā§ āĻāĻ¸āĻ˛ āĻāĻ¸āĻāĻŋāĻāĻ¨ āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋāĻ¤ā§ āĻĢāĻŋāĻ°āĻŋāĻ¯āĻŧā§ āĻāĻ¨āĻ¤ā§ āĻāĻžāĻ¨ āĻ¤āĻāĻ¨ āĻāĻĒāĻ¨āĻžāĻā§ āĻŽā§āĻāĻžāĻĄā§āĻāĻžÂ āĻ°āĻžāĻāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻŽāĻŋāĻ āĻ˛āĻā§ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻā§āĻļāĻ¨ āĻ¨āĻž āĻāĻžāĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻŦāĻŋāĻ§āĻžāĻ¯āĻŧ –no-metadata āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°āĻāĻŋ āĻŦāĻžāĻĻ āĻĻāĻŋāĻ¨āĨ¤
āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻā§ āĻāĻāĻ°āĻāĻŽ āĻĻā§āĻāĻžāĻ¯āĻŧ:
$ git svn clone http://my-project.googlecode.com/svn/ \
--authors-file=users.txt --no-metadata --prefix "" -s my_project
$ cd my_project
āĻāĻāĻ¨ āĻāĻĒāĻ¨āĻžāĻ° my_project āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻ¨ā§āĻĻāĻ° āĻ¸āĻžāĻŦāĻāĻžāĻ°ā§āĻ¸āĻ¨ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻĨāĻžāĻāĻž āĻāĻāĻŋāĻ¤āĨ¤ āĻāĻŽāĻŋāĻā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻāĻāĻŋ āĻĻā§āĻāĻ¤ā§ āĻāĻāĻ°āĻāĻŽ:
commit 37efa680e8473b615de980fa935944215428a35a
Author: schacon
Date: Sun May 3 00:12:22 2009 +0000
fixed install - go to trunk
git-svn-id: https://my-project.googlecode.com/svn/trunk@94 4c93b258-373f-11de-
be05-5f7a86268029
āĻ¤āĻžāĻ°āĻž āĻĻā§āĻāĻ¤ā§ āĻāĻ°āĻāĻŽ :
commit 03a8785f44c8ea5cdb0e8834b7c8e6c469be2ff2
Author: Scott Chacon
Date: Sun May 3 00:12:22 2009 +0000
fixed install - go to trunk
āĻ āĻĨāĻ° āĻĢāĻŋāĻ˛ā§āĻĄ āĻāĻāĻ¨ āĻ āĻ¨ā§āĻ āĻāĻžāĻ˛ āĻĻā§āĻāĻžāĻ¯āĻŧ āĻāĻŦāĻ git-svn-id āĻ āĻāĻ° āĻ¨ā§āĻāĨ¤ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻāĻ¨ post-import āĻā§āĻ˛āĻŋāĻ¨āĻāĻĒ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻžāĻ° āĻ āĻĒā§āĻ°ā§ā§āĻāĻ¨ā§ā§ āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸āĻā§āĻ˛āĻŋ āĻā§āĻ˛āĻŋāĻ¨āĻāĻĒ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¯āĻž āĻāĻŋāĻ āĻāĻ¸āĻāĻŋāĻāĻ¨ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°ā§āĻā§āĨ¤ āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻĒāĻ¨āĻŋ āĻā§āĻ¯āĻžāĻāĻā§āĻ˛āĻŋ āĻ¸āĻ°āĻžāĻ¨ āĻ¯āĻžāĻ¤ā§ āĻ¤āĻžāĻ°āĻž āĻ°āĻŋāĻŽā§āĻ āĻŦā§āĻ°āĻžāĻā§āĻ āĻā§āĻ˛āĻŋāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻĒā§āĻ°āĻā§āĻ¤ āĻā§āĻ¯āĻžāĻ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻĒāĻ¨āĻŋ āĻŦāĻžāĻāĻŋ āĻŦā§āĻ°āĻžāĻā§āĻāĻā§āĻ˛āĻŋāĻā§ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻāĻ°āĻŦā§āĻ¨ āĻ¯āĻžāĻ¤ā§ āĻ¤āĻžāĻ°āĻž āĻ˛ā§āĻāĻžāĻ˛ āĻšāĻ¯āĻŧāĨ¤
āĻā§āĻ¯āĻžāĻāĻā§āĻ˛ā§āĻā§ āĻ¸āĻ°āĻŋā§ā§ āĻ¸āĻ āĻŋāĻ āĻāĻŋāĻ āĻā§āĻ¯āĻžāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§, āĻāĻāĻŋ āĻ°āĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
$ for t in $(git for-each-ref --format='%(refname:short)' refs/remotes/tags); do git tag ${t/tags\//} $t && git branch -D -r $t; done
āĻāĻāĻŋ āĻ°āĻŋāĻŽā§āĻ āĻŦā§āĻ°āĻžāĻā§āĻ āĻāĻ° āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸āĻā§āĻ˛āĻŋ āĻ¨ā§āĻ¯āĻŧ āĻ¯āĻž refs/remotes/tags/ āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ˛āĻŋāĻā§ āĻ¯āĻĨā§āĻĒāĻ¯ā§āĻā§āĻ¤ āĻāĻ¸āĻ˛ (āĻšāĻžāĻ˛āĻāĻž) āĻā§āĻ¯āĻžāĻ āĻšāĻŋāĻ¸ā§āĻŦā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĨ¤Â
āĻāĻ°āĻĒāĻ°ā§, āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸/āĻ°āĻŋāĻŽā§āĻā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻŦāĻžāĻāĻŋ āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸āĻā§āĻ˛āĻŋāĻā§ āĻ˛ā§āĻāĻžāĻ˛ āĻŦā§āĻ°āĻžāĻā§āĻ āĻšāĻ¤ā§ āĻ¸āĻ°āĻžāĻ¨:
$ for b in $(git for-each-ref --format='%(refname:short)' refs/remotes); do git branch $b refs/remotes/$b && git branch -D -r $b; done
āĻāĻāĻŋ āĻāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻŋāĻā§ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻŦā§āĻ°āĻžāĻā§āĻ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦā§āĻ¨ āĻ¯āĻž @xxx āĻĻā§āĻŦāĻžāĻ°āĻž suffixed (āĻ¯ā§āĻāĻžāĻ¨ā§ xxx āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻ¯āĻž), āĻ¯āĻāĻ¨ āĻ¸āĻžāĻŦāĻāĻžāĻ°ā§āĻ¸āĻ¨ā§ āĻāĻĒāĻ¨āĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻŦā§āĻ°āĻžāĻā§āĻ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦā§āĻ¨āĨ¤ āĻāĻāĻŋ āĻāĻ¸āĻ˛ā§ âpeg-revisionsâ āĻ¨āĻžāĻŽā§ āĻāĻāĻāĻŋ āĻ¸āĻžāĻŦāĻāĻžāĻ°ā§āĻ¸āĻ¨ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯, āĻ¯āĻž āĻāĻŽāĻ¨ āĻāĻŋāĻā§ āĻ¯āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŋāĻ āĻ¸āĻšāĻāĻāĻžāĻŦā§ āĻā§āĻ¨ āĻ¸āĻŋāĻ¨āĻā§āĻ¯āĻžāĻā§āĻāĻŋāĻā§āĻ¯āĻžāĻ˛ āĻĒā§āĻ°āĻ¤āĻŋāĻ°ā§āĻĒ āĻ¨ā§āĻāĨ¤ āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻāĻŋāĻ āĻāĻ¸āĻāĻŋāĻāĻ¨ āĻŦā§āĻ°āĻžāĻā§āĻ āĻ¨āĻžāĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻ¸āĻāĻŋāĻāĻ¨ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻ¨āĻŽā§āĻŦāĻ° āĻ¯ā§āĻ āĻāĻ°ā§ āĻ āĻŋāĻ āĻāĻāĻāĻāĻžāĻŦā§ āĻ¯ā§āĻāĻžāĻŦā§ āĻāĻĒāĻ¨āĻŋ āĻāĻ¸āĻāĻŋāĻāĻ¨ āĻ¤ā§ āĻāĻāĻŋ āĻ˛āĻŋāĻā§āĻāĻŋāĻ˛ā§āĻ¨ āĻ¸ā§āĻ āĻļāĻžāĻāĻžāĻ° âpeg-revisionsâ āĻāĻ° āĻāĻ¨ā§āĻ¯āĨ¤ āĻāĻĒāĻ¨āĻžāĻ° āĻ¯āĻĻāĻŋ âpeg-revisionsâ āĻā§āĻ¨ā§ āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻāĻ° āĻĻāĻ°āĻāĻžāĻ° āĻ¨āĻž āĻĒā§ā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻā§āĻŦāĻ˛ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻ¸āĻ°āĻŋāĻ¯āĻŧā§ āĻĻāĻŋāĻ¨:
for p in $(git for-each-ref --format='%(refname:short)' | grep @); do git branch -D $p; done
āĻāĻāĻ¨ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻžāĻ¨ā§ āĻŦā§āĻ°āĻžāĻā§āĻ āĻā§āĻ˛āĻŋ āĻāĻ¸āĻ˛ āĻāĻŋāĻ āĻŦā§āĻ°āĻžāĻā§āĻ āĻāĻŦāĻ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻžāĻ¨ā§ āĻā§āĻ¯āĻžāĻāĻā§āĻ˛āĻŋ āĻāĻ¸āĻ˛ āĻāĻŋāĻ āĻā§āĻ¯āĻžāĻāĨ¤
āĻā§āĻ˛āĻŋāĻ¨āĻāĻĒ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻļā§āĻˇ āĻāĻŋāĻ¨āĻŋāĻ¸ āĻāĻā§āĨ¤ āĻĻā§āĻ°ā§āĻāĻžāĻā§āĻ¯āĻŦāĻļāĻ¤,āĻāĻŋāĻ āĻāĻ¸āĻāĻŋāĻāĻ¨ āĻā§āĻ°āĻžāĻāĻ āĻ¨āĻžāĻŽā§ āĻāĻāĻāĻŋ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻŦā§āĻ°āĻžāĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§, āĻ¯āĻž āĻ¸āĻžāĻŦāĻāĻžāĻ°ā§āĻ¸āĻ¨ā§āĻ° āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŦā§āĻ°āĻžāĻā§āĻ āĻŽā§āĻ¯āĻžāĻĒāĻŋāĻ āĻāĻ°ā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻā§āĻ°āĻžāĻāĻ āĻ°ā§āĻĢ āĻŽāĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻŽāĻ¤ā§ āĻāĻāĻ āĻāĻžāĻ¯āĻŧāĻāĻžāĻ¯āĻŧ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§āĨ¤ āĻ¯ā§āĻšā§āĻ¤ā§ āĻŽāĻžāĻ¸ā§āĻāĻžāĻ°āĻāĻŋ āĻāĻ°āĻ āĻāĻŋāĻ āĻ°ā§āĻ¤āĻŋāĻ¸āĻŋāĻĻā§āĻ§, āĻ¤āĻžāĻ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻŦā§āĻ°āĻžāĻā§āĻāĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻ¸āĻ°āĻŋāĻ¯āĻŧā§ āĻĢā§āĻ˛āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¤āĻž āĻāĻāĻžāĻ¨ā§:
$ git branch -d trunk
āĻļā§āĻˇ āĻāĻŋāĻ¨āĻŋāĻ¸āĻāĻŋ āĻšāĻ˛ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻāĻŋāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻāĻŋāĻā§ āĻ°āĻŋāĻŽā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻŋāĻ¤ā§ āĻĒā§āĻļÂ āĻĻāĻŋāĻ¨āĨ¤ āĻāĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻ°āĻŋāĻŽā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ
$ git remote add origin git@my-git-server:myrepository.git
āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦā§āĻ°āĻžāĻā§āĻ āĻāĻŦāĻ āĻā§āĻ¯āĻžāĻāĻā§āĻ˛āĻŋ āĻāĻĒāĻ°ā§ āĻ¨āĻŋāĻ¤ā§ āĻāĻžāĻ¨, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻ¨ āĻāĻāĻŋ āĻ°āĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
$ git push origin --all
$ git push origin --tags
āĻāĻĒāĻ¨āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦā§āĻ°āĻžāĻā§āĻÂ āĻāĻŦāĻ āĻā§āĻ¯āĻžāĻ āĻāĻāĻāĻŋ āĻ¸ā§āĻ¨ā§āĻĻāĻ°, āĻā§āĻ˛āĻŋāĻ¨ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻĻāĻŋā§ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻāĻŋāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ°āĻžāĻāĻž āĻāĻāĻŋāĻ¤āĨ¤
āĻŽāĻžāĻ°āĻāĻŋāĻāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛
āĻŽāĻžāĻ°āĻāĻŋāĻāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻāĻŦāĻ āĻāĻŋāĻ āĻāĻ° āĻāĻžāĻ°ā§āĻ¸āĻ¨ āĻ¸āĻāĻ°āĻā§āĻˇāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ā§ āĻŽā§āĻāĻžāĻŽā§āĻāĻŋ āĻāĻāĻ āĻ°āĻāĻŽ āĻŽāĻĄā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšā§āĨ¤ āĻŽāĻžāĻ°āĻāĻŋāĻāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻĨā§āĻā§ āĻāĻŋāĻ āĻāĻāĻā§ āĻŦā§āĻļāĻŋ āĻ¸āĻšāĻāĨ¤ āĻŽāĻžāĻ°āĻāĻŋāĻāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻĨā§āĻā§ āĻāĻŋāĻ āĻ āĻāĻāĻāĻŋ āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋāĻā§ “hg-fast-export” āĻā§āĻ˛āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻŽā§āĻāĻžāĻŽā§āĻāĻŋ āĻ¸āĻšāĻā§ āĻāĻ¨āĻāĻžāĻ°ā§āĻ āĻāĻ°āĻž āĻ¯āĻžā§āĨ¤Â
Â
āĻāĻ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ā§ “hg-fast-export” āĻāĻ° āĻāĻāĻāĻŋ āĻāĻĒāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻĻāĻ°āĻāĻžāĻ° āĻšāĻŦā§āĨ¤
$ git clone https://github.com/frej/fast-export.git
āĻĒā§āĻ°āĻĨāĻŽ āĻ§āĻžāĻĒā§ āĻāĻāĻāĻŋ āĻŽāĻžāĻ°āĻāĻŋāĻāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋ āĻā§āĻ˛ā§āĻ¨ āĻāĻ°āĻž āĻĻāĻ°āĻāĻžāĻ° āĻ¯ā§āĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻāĻ¨āĻāĻžāĻ°ā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨āĻ
$ hg clone /tmp/hg-repo
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ§āĻžāĻĒ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻ āĻĨāĻ° āĻŽā§āĻ¯āĻžāĻĒāĻŋāĻ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĨ¤ āĻŽāĻžāĻ°āĻāĻŋāĻāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻāĻŋāĻ – āĻāĻ° āĻā§āĻ¯āĻŧā§ āĻāĻŋāĻā§āĻāĻž āĻŦā§āĻļāĻŋ āĻā§āĻˇāĻŽāĻžāĻļā§āĻ˛, āĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻšāĻŦā§ āĻ¤āĻž āĻ āĻĨāĻ° āĻĢāĻŋāĻ˛ā§āĻĄ āĻ āĻ°āĻžāĻāĻž āĻšāĻŦā§āĨ¤ āĻ¸ā§āĻ¤āĻ°āĻžāĻ āĻā§āĻ˛āĻŋāĻ¨ āĻšāĻžāĻāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻžāĻ˛ āĻ¸āĻŽāĻ¯āĻŧāĨ¤ āĻāĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻžāĻļ āĻ¸ā§āĻ˛ āĻ āĻāĻ āĻāĻ āĻ˛āĻžāĻāĻ¨ā§āĻ° āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻ°āĻžāĻ¨ āĻāĻ°āĨ¤
$ cd /tmp/hg-repo
$ hg log | grep user: | sort | uniq | sed 's/user: *//' > ../authors
āĻāĻāĻŋ āĻā§ā§āĻ āĻ¸ā§āĻā§āĻ¨ā§āĻĄ āĻ¸āĻŽā§ āĻ¨āĻŋāĻŦā§, āĻāĻāĻž āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°āĻŦā§ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻā§āĻā§āĻā§āĻ° āĻšāĻŋāĻ¸ā§āĻāĻ°āĻŋāĻ° āĻāĻĒāĻ°āĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ°ā§Â /tmp/authors āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻāĻ°āĻāĻŽ āĻāĻŋāĻā§ āĻĻā§āĻāĻžāĻŦā§āĻ
bob
bob@localhost
bob
bob jones company com>
Bob Jones
Joe Smith
āĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖā§, āĻāĻāĻÂ āĻŦā§āĻ¯āĻā§āĻ¤āĻŋ (Bob) āĻāĻžāĻ°āĻāĻŋ āĻāĻŋāĻ¨ā§āĻ¨ āĻ¨āĻžāĻŽā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻā§, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻāĻ¸āĻ˛ā§ āĻ¸āĻ āĻŋāĻ āĻĻā§āĻāĻžāĻā§āĻā§ āĻāĻŦāĻ āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻāĻŋāĻ āĻāĻŽāĻŋāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻāĻ¨āĻā§āĻ¯āĻžāĻ˛āĻŋāĻĄ āĻšāĻŦā§āĨ¤ hg-fast-export āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ˛āĻžāĻāĻ¨āĻā§ āĻāĻāĻāĻŋ āĻ°ā§āĻ˛ āĻ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻāĻ°ā§ āĻāĻāĻŋ āĻ āĻŋāĻ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ: “<input>”=”<output>”, āĻāĻāĻāĻŋ <input> āĻĨā§āĻā§ āĻāĻāĻāĻŋ <output> āĻ āĻŽā§āĻ¯āĻžāĻĒāĻŋāĻ āĻāĻ°ā§āĨ¤ <input> āĻāĻŦāĻ <output> āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻ° āĻāĻŋāĻ¤āĻ°ā§ āĻ¸āĻāĻ˛ escape sequences āĻĒāĻžāĻāĻĨāĻ¨ āĻāĻ¨āĻā§āĻĄāĻŋāĻ string_escape āĻ¸āĻžāĻĒā§āĻ°ā§āĻ āĻāĻ°ā§āĨ¤ āĻ¯āĻĻāĻŋ āĻ āĻĨāĻ° āĻŽā§āĻ¯āĻžāĻĒāĻŋāĻ āĻĢāĻžāĻāĻ˛ā§ āĻā§āĻ¨ <input> āĻŽāĻŋāĻ˛ āĻ¨āĻž āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻ¸ā§āĻ āĻ āĻĨāĻ° āĻāĻŋāĻā§ āĻāĻ¨āĻŽāĻĄāĻŋāĻĢāĻžāĻāĻĄ āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻšāĻŦā§āĨ¤ āĻ¯āĻĻāĻŋ āĻ¸āĻāĻ˛ āĻāĻāĻāĻžāĻ°āĻ¨ā§āĻāĻŽ āĻ āĻŋāĻ āĻĻā§āĻāĻžā§ āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻĻāĻ°āĻāĻžāĻ° āĻšāĻŦā§ āĻ¨āĻžāĨ¤ āĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖā§, āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻĻā§āĻāĻ¤ā§ āĻāĻžāĻ:
"bob"="Bob Jones "
"bob@localhost"="Bob Jones "
"bob "="Bob Jones "
"bob jones company com>"="Bob Jones "
āĻāĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻŽā§āĻ¯āĻžāĻĒāĻŋāĻ āĻĢāĻžāĻāĻ˛ āĻāĻ° āĻŦā§āĻ°āĻžāĻā§āĻ āĻāĻŦāĻ āĻā§āĻ¯āĻžāĻā§āĻ° āĻ¨āĻžāĻŽ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯āĻĻāĻŋ āĻŽāĻžāĻ°āĻāĻŋāĻāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻ¨āĻžāĻŽāĻāĻŋ āĻāĻŋāĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤ āĻ¨āĻž āĻšā§āĨ¤
Â
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ§āĻžāĻĒ āĻšāĻ˛ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¨āĻ¤ā§āĻ¨ āĻāĻŋāĻ āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻāĻŦāĻ āĻāĻā§āĻ¸āĻĒā§āĻ°ā§āĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻžāĻ˛āĻžāĻ¨ā§:
$ git init /tmp/converted
$ cd /tmp/converted
$ /tmp/fast-export/hg-fast-export.sh -r /tmp/hg-repo -A /tmp/authors
-r āĻĢā§āĻ˛ā§āĻ¯āĻžāĻāĻāĻŋ hg-fast-export āĻā§ āĻŦāĻ˛ā§ āĻāĻŽāĻ°āĻž āĻ¯ā§ āĻŽāĻžāĻ°āĻāĻŋāĻāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋ āĻāĻŋ āĻāĻ¨āĻāĻžāĻ°ā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ āĻ¸ā§āĻāĻž āĻā§āĻĨāĻžā§ āĻā§āĻāĻŦ, āĻāĻŦāĻ -A āĻĢā§āĻ˛ā§āĻ¯āĻžāĻāĻāĻŋ āĻŦāĻ˛ā§ āĻ¯ā§ āĻ āĻĨāĻ° āĻŽā§āĻ¯āĻžāĻĒāĻŋāĻ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻā§āĻĨāĻžāĻ¯āĻŧ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§ (āĻŦā§āĻ°āĻžāĻā§āĻ āĻāĻŦāĻ āĻā§āĻ¯āĻžāĻ āĻŽā§āĻ¯āĻžāĻĒāĻŋāĻ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻ¯āĻĨāĻžāĻā§āĻ°āĻŽā§ -B āĻāĻŦāĻ -T āĻĢā§āĻ˛ā§āĻ¯āĻžāĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ)āĨ¤ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻāĻāĻŋ āĻŽāĻžāĻ°āĻāĻŋāĻāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻā§āĻāĻā§āĻāĻ¸ā§āĻ āĻā§ āĻĒāĻžāĻ°ā§āĻ¸ āĻāĻ°ā§ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ˛āĻŋāĻā§ āĻāĻŋāĻ-āĻāĻ° “fast-import” āĻĢāĻŋāĻāĻžāĻ° āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻā§ āĻāĻ¨āĻāĻžāĻ°ā§āĻ āĻāĻ°ā§ (āĻ¯āĻž āĻāĻŽāĻ°āĻž āĻāĻāĻā§ āĻĒāĻ°ā§ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻŦ)āĨ¤ āĻāĻāĻŋ āĻāĻŋāĻā§āĻāĻž āĻ¸āĻŽāĻ¯āĻŧ āĻ¨ā§āĻ¯āĻŧ (āĻ¯āĻĻāĻŋāĻ āĻāĻāĻŋ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§āĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻ āĻ¨ā§āĻ āĻĻā§āĻ°ā§āĻ¤), āĻāĻŦāĻ āĻāĻāĻāĻĒā§āĻāĻāĻŋ āĻŽā§āĻāĻžāĻŽā§āĻāĻŋ āĻāĻ°āĻāĻŽ:
$ /tmp/fast-export/hg-fast-export.sh -r /tmp/hg-repo -A /tmp/authors
Loaded 4 authors
master: Exporting full revision 1/22208 with 13/0/0 added/changed/removed files
master: Exporting simple delta revision 2/22208 with 1/1/0 added/changed/removed files
master: Exporting simple delta revision 3/22208 with 0/1/0 added/changed/removed files
[...]
master: Exporting simple delta revision 22206/22208 with 0/4/0 added/changed/removed files
master: Exporting simple delta revision 22207/22208 with 0/2/0 added/changed/removed files
master: Exporting thorough delta revision 22208/22208 with 3/213/0 added/changed/removed files
Exporting tag [0.4c] at [hg r9] [git :10]
Exporting tag [0.4d] at [hg r16] [git :17]
[...]
Exporting tag [3.1-rc] at [hg r21926] [git :21927]
Exporting tag [3.1] at [hg r21973] [git :21974]
Issued 22315 commands
git-fast-import statistics:
---------------------------------------------------------------------
Alloc'd objects: 120000
Total objects: 115032 ( 208171 duplicates )
blobs : 40504 ( 205320 duplicates 26117 deltas of 39602 attempts)
trees : 52320 ( 2851 duplicates 47467 deltas of 47599 attempts)
commits: 22208 ( 0 duplicates 0 deltas of 0 attempts)
tags : 0 ( 0 duplicates 0 deltas of 0 attempts)
Total branches: 109 ( 2 loads )
marks: 1048576 ( 22208 unique )
atoms: 1952
Memory total: 7860 KiB
pools: 2235 KiB
objects: 5625 KiB
---------------------------------------------------------------------
pack_report: getpagesize() = 4096
pack_report: core.packedGitWindowSize = 1073741824
pack_report: core.packedGitLimit = 8589934592
pack_report: pack_used_ctr = 90430
pack_report: pack_mmap_calls = 46771
pack_report: pack_open_windows = 1 / 1
pack_report: pack_mapped = 340852700 / 340852700
---------------------------------------------------------------------
$ git shortlog -sn
369 Bob Jones
365 Joe Smith
āĻāĻāĻžā§ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻā§āĨ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŽāĻžāĻ°āĻāĻŋāĻāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻā§āĻ¯āĻžāĻāĻā§āĻ˛āĻŋ āĻāĻŋāĻ āĻā§āĻ¯āĻžāĻā§ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§, āĻāĻŦāĻ āĻŽāĻžāĻ°āĻāĻŋāĻāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻŦā§āĻ°āĻžāĻā§āĻ āĻāĻŦāĻ āĻŦā§āĻāĻŽāĻžāĻ°ā§āĻāĻā§āĻ˛āĻŋ āĻāĻŋāĻ āĻŦā§āĻ°āĻžāĻā§āĻ āĻ āĻāĻ¨āĻāĻžāĻ°ā§āĻ āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻāĻ¨ āĻāĻĒāĻ¨āĻŋ āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋāĻāĻŋ āĻā§ āĻ¤āĻžāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°-āĻ¸āĻžāĻāĻĄ āĻ āĻĒā§āĻļ āĻāĻ°ā§ āĻĻāĻŋāĻ¤ā§ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤:
$ git remote add origin git@my-git-server:myrepository.git
$ git push origin --all
āĻŦā§āĻ¯āĻžāĻāĻžāĻ°
āĻŦā§āĻ¯āĻžāĻāĻžāĻ° āĻšāĻ˛ āĻ āĻ¨ā§āĻāĻāĻž āĻāĻŋāĻ-āĻāĻ° āĻŽāĻ¤āĻ āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĄāĻŋāĻāĻŋāĻ¸āĻŋāĻāĻ¸ (āĻĄāĻŋāĻ¸ā§āĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻā§āĻĄ āĻāĻžāĻ°ā§āĻ¸āĻ¨ āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ) āĻā§āĻ˛, āĻāĻŦāĻ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻāĻŋāĻ āĻ°āĻŋāĻĒā§āĻā§ āĻā§āĻŦ āĻ¸āĻšāĻā§āĻ āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻžāĻāĻžāĻ° āĻāĻŋāĻ-āĻ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻāĻāĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻĻā§āĻ° bzr-fastimport āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ āĻŦā§āĻ¯āĻžāĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
Â
āĻāĻŋāĻāĻžāĻŦā§ āĻāĻŽāĻ°āĻž bzr-fastimport āĻĒā§āĻ˛āĻžāĻāĻŋāĻ¨ āĻŦā§āĻ¯āĻžāĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§
bzr-fastimport āĻĒā§āĻ˛āĻžāĻāĻŋāĻ¨ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŋāĻ¨ā§āĻ¨ āĻāĻŋāĻ¨ā§āĻ¨ āĻšā§ā§ āĻĨāĻžāĻā§, āĻ¯ā§āĻŽāĻ¨āĻ āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ āĻāĻŦāĻ āĻāĻāĻ¨ā§āĻĄā§āĻ āĨ¤ āĻĒā§āĻ°āĻĨāĻŽ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻ¸āĻšāĻ āĻšāĻ˛ bzr-fastimport āĻĒā§āĻ¯āĻžāĻā§āĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻ¯āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻĄāĻŋāĻĒā§āĻĄā§āĻ¨ā§āĻ¸āĻŋ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻŦā§āĨ¤
Â
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, Debian āĻāĻŦāĻ Derived āĻĻāĻŋā§ā§ :Â
$ sudo apt-get install bzr-fastimport
RHEL āĻĻāĻŋā§ā§ :
$ sudo yum install bzr-fastimport
āĻĢā§āĻĄā§āĻ°āĻž, 22 āĻāĻžāĻ°ā§āĻ¸āĻ¨ āĻĒā§āĻ°āĻāĻžāĻļā§āĻ° āĻĒāĻ° āĻĨā§āĻā§, āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻžāĻ° āĻšāĻ˛ dnf:
$ sudo dnf install bzr-fastimport
āĻĒā§āĻ¯āĻžāĻā§āĻ āĻā§āĻ˛ā§ āĻāĻ¨āĻ¸ā§āĻāĻ˛Â āĻ¨āĻž āĻšāĻ˛ā§, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
$ mkdir --parents ~/.bazaar/plugins # creates the necessary folders for the plugins
$ cd ~/.bazaar/plugins
$ bzr branch lp:bzr-fastimport fastimport # imports the fastimport plugin
$ cd fastimport
$ sudo python setup.py install --record=files.txt # installs the plugin
āĻāĻ āĻĒā§āĻ˛āĻžāĻāĻāĻ¨āĻāĻŋ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻžāĻ° āĻĢāĻžāĻ¸ā§āĻ āĻāĻŽāĻĒā§āĻ°ā§āĻ āĻĒāĻžāĻāĻĨāĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ°āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻŦā§āĨ¤ āĻāĻāĻŋ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻā§ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻāĻŋ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
$ python -c "import fastimport"
Traceback (most recent call last):
File "", line 1, in
ImportError: No module named fastimport
$ pip install fastimport
āĻāĻāĻāĻŋ āĻ¸āĻŋāĻā§āĻā§āĻ˛ āĻŦā§āĻ°āĻžāĻā§āĻ āĻĒā§āĻ°āĻā§āĻā§āĻ:Â
āĻāĻāĻ¨ āĻāĻĒāĻ¨āĻžāĻ° āĻŦā§āĻ¯āĻžāĻāĻžāĻ° āĻ°āĻŋāĻĒā§ āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻŽāĻ¨ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻā§āĻāĻā§āĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻŋāĻ āĻļā§āĻ°ā§ āĻāĻ°ā§āĻ¨:
$ cd /path/to/the/bzr/repository
$ git init
āĻāĻāĻ¨, āĻāĻĒāĻ¨āĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻŦā§āĻ¯āĻžāĻāĻžāĻ° āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋ āĻāĻā§āĻ¸āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻāĻŋāĻ āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
$ bzr fast-export --plain . | git fast-import
āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻŖ āĻšāĻ¤ā§ āĻāĻāĻā§ āĻ¸āĻŽā§ āĻ¨āĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻāĻāĻž āĻĒā§āĻ°ā§āĻā§āĻā§āĻ āĻ¸āĻžāĻāĻā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĨ¤
Â
āĻā§āĻāĻ¸ āĻ āĻĢ āĻ āĻĒā§āĻ°āĻā§āĻā§āĻ āĻāĻāĻĨ āĻ āĻŽā§āĻāĻ¨ āĻŦā§āĻ°āĻžāĻā§āĻ āĻāĻ¨ā§āĻĄ āĻ āĻā§āĻžāĻ°ā§āĻāĻŋāĻ āĻŦā§āĻ°āĻžāĻā§āĻ:
āĻ§āĻ°ā§āĻ¨ āĻāĻĒāĻ¨āĻžāĻ° āĻĻā§āĻāĻŋ āĻŦā§āĻ°āĻžāĻā§āĻ āĻāĻā§ āĻāĻāĻāĻŋ āĻšāĻ˛ āĻŽā§āĻāĻ¨ āĻŦā§āĻ°āĻžāĻā§āĻ (myProject.trunk) āĻāĻŦāĻ āĻāĻ° āĻāĻāĻāĻŋ āĻšāĻ˛ āĻā§āĻžāĻ°ā§āĻāĻŋāĻ āĻŦā§āĻ°āĻžāĻā§āĻ (myProject.work) āĻ¯ā§āĻāĻžāĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻžāĻ āĻāĻ°āĻā§āĻ¨
$ ls
myProject.trunk myProject.work
āĻāĻŋāĻ āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻ¤ā§ āĻā§āĻāĻā§āĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻāĻ°ā§āĻ¨:
$ git init git-repo
$ cd git-repo
āĻāĻŋāĻā§ āĻŽāĻžāĻ¸ā§āĻāĻžāĻ° āĻŦā§āĻ°āĻžāĻā§āĻ āĻĨā§āĻā§ āĻĒā§āĻ˛ āĻ¨āĻŋāĻ¨:
$ bzr fast-export --export-marks=../marks.bzr ../myProject.trunk | \
git fast-import --export-marks=../marks.git
āĻāĻŋāĻā§ āĻā§āĻžāĻ°ā§āĻāĻŋāĻ āĻŦā§āĻ°āĻžāĻā§āĻ āĻĨā§āĻā§ āĻĒā§āĻ˛ āĻ¨āĻŋāĻ¨:
$ bzr fast-export --marks=../marks.bzr --git-branch=work ../myProject.work | \
git fast-import --import-marks=../marks.git --export-marks=../marks.git
āĻāĻā§āĻ¨ git branch āĻ˛āĻŋāĻāĻ˛ā§āĻ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻĻā§āĻāĻŋ āĻŦā§āĻ°āĻžāĻā§āĻ āĻĻā§āĻāĻžāĻā§āĻā§Â
marks.bzr āĻāĻŦāĻ marks.git
Â
āĻ¸ā§āĻā§āĻāĻŋāĻ āĻāĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻ āĻāĻ°āĻž:
āĻāĻĒāĻ¨āĻžāĻ° āĻ¯āĻ¤āĻā§āĻ˛āĻŋ āĻŦā§āĻ°āĻžāĻā§āĻ āĻāĻŋāĻ˛ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻŋ āĻ¯ā§ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻā§āĻ¨ āĻ¤āĻž āĻ¯āĻžāĻ āĻšā§āĻ āĻ¨āĻž āĻā§āĻ¨, āĻāĻĒāĻ¨āĻžāĻ° āĻ¸ā§āĻā§āĻāĻŋāĻ āĻāĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋ āĻšā§āĻĄ āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž āĻāĻŦāĻ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻŦā§āĻ°āĻžāĻā§āĻā§āĻ° āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ° āĻ¸āĻžāĻĨā§, āĻāĻĒāĻ¨āĻžāĻ° āĻāĻžāĻā§āĻ° āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻāĻŋāĻ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻāĻ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻ¸āĻšāĻā§āĻ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ:
$ git reset --hard HEAD
.bzrignor āĻĻāĻŋāĻ¯āĻŧā§ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋāĻā§ āĻāĻāĻ¨ā§āĻ° āĻāĻ°ā§āĻ¨:
āĻāĻāĻ¨ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻ˛āĻā§āĻˇ āĻāĻ°ā§ āĻĻā§āĻā§āĻ¨āĨ¤ āĻĒā§āĻ°āĻĨāĻŽā§ .bzrignore āĻāĻ° āĻ¨āĻžāĻŽ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§ .gitignore āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻ¯āĻĻāĻŋ .bzrignore āĻĢāĻžāĻāĻ˛ā§ “!!” āĻ āĻĨāĻŦāĻž “RE:” āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻšāĻāĻ¯āĻŧāĻž āĻāĻ āĻŦāĻž āĻāĻāĻžāĻ§āĻŋāĻ āĻ˛āĻžāĻāĻ¨ āĻĨāĻžāĻā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻŦā§āĻ¯āĻžāĻāĻžāĻ° āĻāĻāĻ¨ā§āĻ° āĻāĻ°āĻž āĨ¤ āĻ āĻŋāĻ āĻāĻāĻ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋāĻā§ āĻāĻāĻ¨ā§āĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ .gitignore āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ā§ˇ
Â
āĻ āĻŦāĻļā§āĻˇā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻāĻŽāĻŋāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻŽāĻžāĻāĻā§āĻ°ā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯
$ git mv .bzrignore .gitignore
$ # modify .gitignore if needed
$ git commit -am 'Migration from Bazaar to Git'
āĻāĻĒāĻ¨āĻžāĻ° āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋ āĻā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻĒā§āĻļ āĻāĻ°ā§āĻ¨āĨ¤Â Â
$ git remote add origin git@my-git-server:mygitrepository.git
$ git push origin --all
$ git push origin --tags
āĻĒāĻžāĻ°āĻĢā§āĻ°ā§āĻ¸
āĻĒāĻ°ā§āĻ° āĻ¯ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĨā§āĻā§ āĻāĻŽāĻ°āĻž āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĻ¤āĻž āĻšāĻ˛ āĻĒāĻžāĻ°āĻĢā§āĻ°ā§āĻ¸āĨ¤ āĻāĻĒāĻ°ā§āĻā§āĻ¤ āĻāĻ˛ā§āĻāĻ¨āĻž āĻ¸āĻžāĻĒā§āĻā§āĻˇā§ āĻāĻŋāĻ āĻāĻ° āĻĒāĻžāĻ°āĻĢā§āĻ°ā§āĻ¸ āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻāĻ° āĻĻā§āĻāĻāĻž āĻāĻĒāĻžā§ āĻāĻā§ :
āĻāĻŋāĻ-p4 āĻāĻ° āĻĒāĻžāĻ°āĻĢā§āĻ°ā§āĻ¸ āĻāĻŋāĻ āĻĢāĻŋāĻāĻļāĻ¨Â
Â
āĻĒāĻžāĻ°āĻĢā§āĻ°ā§āĻ¸ āĻāĻŋāĻ āĻĢāĻŋāĻāĻļāĻ¨:Â
āĻāĻŋāĻ āĻĢāĻŋāĻāĻļāĻ¨ āĻāĻ āĻāĻžāĻāĻāĻŋ āĻ āĻ¨ā§āĻāĻžāĻāĻļā§ āĻ¸āĻšāĻ āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§āĨ¤ āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻā§āĻā§āĻ āĻ¸ā§āĻāĻŋāĻāĻ¸, āĻāĻāĻāĻžāĻ° āĻŽā§āĻ¯āĻžāĻĒāĻŋāĻ āĻāĻŦāĻ āĻŦā§āĻ°āĻžāĻā§āĻ āĻā§āĻ˛āĻž āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛ (āĻāĻŋāĻ āĻĢāĻŋāĻāĻļāĻ¨ āĻ āĻŦāĻ˛āĻž āĻšā§ā§āĻā§) āĻāĻ° āĻ¸āĻžāĻĨā§āĨ¤ āĻāĻ°āĻĒāĻ° āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋ āĻāĻž āĻā§āĻ˛ā§āĻ¨ āĻāĻ°ā§ āĻ¨āĻŋāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻŋāĻ āĻĢāĻŋāĻāĻļāĻ¨ āĻāĻāĻāĻž āĻ¨ā§āĻāĻŋāĻ āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋ āĻāĻ°ā§ āĻĻā§ā§ āĻ¯ā§āĻāĻž āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻ¤ā§ āĻāĻāĻāĻž āĻ¨ā§āĻāĻŋāĻ āĻāĻŋāĻ āĻšā§āĻ¸ā§āĻ āĻ āĻāĻŽāĻ°āĻž āĻāĻžāĻāĻ˛ā§ āĻĒā§āĻļ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻāĻŽāĻ¨āĻāĻŋ āĻāĻŽāĻ°āĻž āĻĒāĻžāĻ°āĻĢā§āĻ°ā§āĻ¸ āĻā§āĻ āĻāĻŋāĻ āĻšā§āĻ¸ā§āĻ āĻšāĻŋāĻ¸ā§āĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤
Â
āĻāĻŋāĻ-p4:Â
āĻāĻŋāĻ-p4 āĻāĻāĻāĻŋ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻā§āĻ˛ āĻšāĻŋāĻ¸ā§āĻŦā§āĻ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻŽāĻ°āĻž āĻĒāĻžāĻ°āĻĢā§āĻ°ā§āĻ¸ āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻĄāĻŋāĻĒā§āĻ āĻĨā§āĻā§ āĻā§āĻ¯āĻžāĻŽ āĻĒā§āĻ°āĻā§āĻā§āĻ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻŦāĨ¤ āĻā§āĻ˛āĻžā§ā§āĻ¨ā§āĻ āĻ¸ā§āĻāĻāĻĒ āĻāĻ°āĻ¤ā§ āĻšāĻ˛ā§, āĻ āĻŦāĻļā§āĻ¯āĻ P4PORT āĻāĻ¨āĻāĻžā§āĻ°āĻ¨āĻŽā§āĻ¨ā§āĻ āĻā§āĻ¯āĻžāĻ°āĻŋā§ā§āĻŦāĻ˛ āĻāĻā§āĻ¸āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯ā§āĻāĻž āĻĒāĻžāĻ°āĻĢā§āĻ°ā§āĻ¸ āĻĄāĻŋāĻĒā§āĻ āĻā§ āĻĒā§ā§āĻ¨ā§āĻ āĻāĻ°āĻŦā§āĨ¤Â
$ export P4PORT=public.perforce.com:1666
āĻ¨ā§āĻ
āĻĢāĻ˛ā§ āĻāĻ°āĻ¤ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻāĻāĻŋ āĻĒāĻžāĻ°āĻĢā§āĻ°ā§āĻ¸ āĻĄāĻŋāĻĒā§āĻ āĻ˛āĻžāĻāĻŦā§ āĻāĻžāĻ¨ā§āĻā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯āĨ¤ āĻāĻŽāĻ°āĻž public.perforce.com āĻ āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻĄāĻŋāĻĒā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻ¯ā§āĻā§āĻ¨ā§ āĻĄāĻŋāĻĒā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¯ā§āĻāĻžā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻā§āĨ¤
āĻā§āĻ¯āĻžāĻŽ āĻĒā§āĻ°āĻā§āĻā§āĻ āĻā§ āĻĒāĻžāĻ°āĻĢā§āĻ°ā§āĻ¸ server āĻĨā§āĻā§ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻ¤ā§ git p4 clone āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻāĻŋ āĻ°āĻžāĻ¨ āĻāĻ°ā§āĻ¨ āĻāĻ° āĻāĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻĒā§āĻ, āĻĒā§āĻ°āĻā§āĻā§āĻ āĻĒāĻžāĻĨ āĻāĻ° āĻ¯ā§ āĻĒāĻžāĻĨ – āĻ āĻĒā§āĻ°āĻā§āĻā§āĻ āĻāĻž āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻŦā§āĻ¨ āĻ¤āĻž āĻ¸āĻžāĻĒā§āĻ˛āĻžāĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
$ git-p4 clone //guest/perforce_software/jam@all p4import
Importing from //guest/perforce_software/jam@all into p4import
Initialized empty Git repository in /private/tmp/p4import/.git/
Import destination: refs/remotes/p4/master
Importing revision 9957 (100%)
āĻāĻ āĻĒā§āĻ°āĻā§āĻā§āĻ āĻ āĻļā§āĻ§ā§ āĻāĻāĻāĻŋ āĻŦā§āĻ°āĻžāĻā§āĻ āĻāĻā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¯āĻĻāĻŋ āĻ āĻ¨ā§āĻ āĻŦā§āĻ°āĻžāĻā§āĻ āĻĨāĻžāĻā§ āĻ¯ā§āĻā§āĻ˛āĻž āĻŦā§āĻ°āĻžāĻā§āĻ āĻāĻŋāĻāĻ¸ (āĻ āĻĨāĻŦāĻž āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¸ā§āĻ) āĻĻāĻŋā§ā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻšā§ā§āĻā§, āĻāĻĒāĻ¨āĻŋ –detect-branches flag āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ git p4 clone āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¯āĻž āĻĒā§āĻ°āĻā§āĻā§āĻ āĻāĻ° āĻ¸āĻŦ āĻŦā§āĻ°āĻžāĻā§āĻ āĻā§āĻ˛āĻž āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻŦā§āĨ¤ āĻāĻ°āĻ āĻŦāĻŋāĻļāĻĻ āĻāĻžāĻŦā§ āĻāĻžāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĻā§āĻā§āĻ¨Â
Â
āĻāĻ āĻĒāĻ°ā§āĻ¯āĻžā§ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻžāĻāĻāĻŋ āĻĒā§āĻ°āĻžā§ āĻļā§āĻˇāĨ¤ āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻŋ p4import  āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¤ā§ āĻ¯āĻžāĻ¨ āĻāĻ° āĻ°āĻžāĻ¨ āĻāĻ°ā§āĻ¨ git log, āĻāĻĒāĻ¨āĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻž āĻāĻžāĻāĻāĻŋ āĻĻā§āĻāĻŦā§āĻ¨ :
$ git log -2
commit e5da1c909e5db3036475419f6379f2c73710c4e6
Author: giles
Date: Wed Feb 8 03:13:27 2012 -0800
Correction to line 355; change to .
[git-p4: depot-paths = "//public/jam/src/": change = 8068]
commit aa21359a0a135dda85c50a7f7cf249e4f7b8fd98
Author: kwirth
Date: Tue Jul 7 01:35:51 2009 -0800
Fix spelling error on Jam doc page (cummulative -> cumulative).
[git-p4: depot-paths = "//public/jam/src/": change = 7304]
āĻāĻĒāĻ¨āĻŋ āĻā§ā§āĻžāĻ˛ āĻāĻ°āĻŦā§āĻ¨ āĻ¯ā§, āĻāĻŋāĻ-p4Â āĻĒā§āĻ°āĻ¤āĻŋāĻāĻž āĻāĻŽāĻŋāĻ āĻŽā§āĻ¸ā§āĻ āĻ āĻāĻāĻāĻž āĻāĻāĻĄā§āĻ¨ā§āĻāĻŋāĻĢāĻžā§āĻžāĻ° āĻ°ā§āĻā§āĻā§āĨ¤ āĻāĻ āĻāĻāĻĄā§āĻ¨ā§āĻāĻŋāĻĢāĻžā§āĻžāĻ° āĻāĻŋ āĻāĻāĻžāĻ¨ā§ āĻ°āĻžāĻāĻž āĻ¯āĻžāĻŦā§, āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻ¤ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻĒāĻžāĻ°āĻĢā§āĻ°ā§āĻ¸ āĻāĻŋ āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻāĻ°āĻž āĻĒā§āĻ°ā§ā§āĻāĻ¨ āĻšāĻ˛ā§ āĻ¨āĻžāĻŽā§āĻŦāĻžāĻ° āĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻāĻĄā§āĻ¨ā§āĻāĻŋāĻĢāĻžā§āĻžāĻ° āĻāĻŋ āĻŦāĻĻāĻ˛āĻžāĻ¤ā§ āĻāĻžāĻ¨, āĻāĻāĻ¨āĻŋ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ – āĻ¨āĻ¤ā§āĻ¨ āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋ āĻ¤ā§ āĻāĻžāĻ āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻā§āĨ¤ āĻāĻĒāĻ¨āĻŋÂ git filter-branch āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻĄā§āĻ¨ā§āĻāĻŋāĻĢāĻžā§āĻžāĻ° āĻāĻ¨ āĻŽā§āĻ¸ āĻ¸āĻ°āĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĻÂ
$ git filter-branch --msg-filter 'sed -e "/^\[git-p4:/d"'
Rewrite e5da1c909e5db3036475419f6379f2c73710c4e6 (125/125)
Ref 'refs/heads/master' was rewritten
āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻŋÂ git log run āĻāĻ°ā§āĻ¨, āĻāĻĒāĻ¨āĻŋ āĻĻā§āĻāĻŦā§āĻ¨ āĻ¯ā§ āĻāĻŽāĻŋāĻ āĻā§āĻ˛āĻžāĻ° āĻ¸āĻŦ SHA-1 āĻā§āĻāĻ¸āĻžāĻŽ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšā§ā§āĻā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŋāĻ-p4 āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻā§āĻ˛āĻž āĻāĻŽāĻŋāĻ āĻŽā§āĻ¸ā§āĻ āĻ āĻāĻ° āĻ¨ā§āĻ :
$ git log -2
commit b17341801ed838d97f7800a54a6f9b95750839b7
Author: giles
Date: Wed Feb 8 03:13:27 2012 -0800
Correction to line 355; change to .
commit 3e68c2e26cd89cb983eb52c024ecdfba1d6b3fff
Author: kwirth
Date: Tue Jul 7 01:35:51 2009 -0800
Fix spelling error on Jam doc page (cummulative -> cumulative).
āĻāĻĒāĻ¨āĻžāĻ° āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻāĻŋāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻĒā§āĻļ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ°ā§āĻĄāĻŋāĨ¤
Â
āĻāĻžāĻ¸ā§āĻāĻŽ āĻāĻŽā§āĻĒā§āĻ°ā§āĻāĻžāĻ°:
āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻĒāĻ°ā§āĻ° āĻā§āĻ¨ā§āĻāĻŋāĻ āĻ¨āĻž āĻšā§ā§ āĻĨāĻžāĻā§, āĻ¸ā§āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻ āĻ¨āĻ˛āĻžāĻāĻ¨ āĻāĻŽā§āĻĒā§āĻ°ā§āĻāĻžāĻ° āĻā§āĻāĻāĻ¤ā§ āĻšāĻŦā§- āĻāĻ§āĻ°āĻ¨ā§āĻ° āĻ āĻ¨ā§āĻ āĻāĻŽā§āĻĒā§āĻ°ā§āĻāĻžāĻ° āĻāĻā§ āĻ¯āĻž āĻ¸āĻšāĻāĻ˛āĻā§āĻ¯ āĻāĻŦāĻ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¤āĻž āĻĒāĻžāĻ°ā§āĻĢā§āĻā§āĻ, āĻāĻ¸āĻŦ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻ¸āĻŋāĻāĻŋāĻāĻ¸, āĻā§āĻ˛āĻŋā§āĻžāĻ° āĻā§āĻāĻ¸, āĻāĻŋāĻā§ā§āĻžāĻ˛ āĻ¸ā§āĻ°ā§āĻ¸ āĻ¸ā§āĻĢ, āĻāĻŽāĻ¨āĻāĻŋ āĻāĻ°ā§āĻāĻžāĻāĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĨ¤ āĻ¯āĻĻāĻŋ āĻāĻ¸āĻŦ āĻā§āĻ˛ āĻŦāĻž āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻā§āĻ¨ā§āĻāĻžāĻ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻž āĻĨā§āĻā§ āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻāĻāĻŋ āĻāĻžāĻ¸ā§āĻāĻŽ āĻāĻŽā§āĻĒā§āĻ°ā§āĻāĻŋāĻ āĻĒā§āĻ°āĻ¸ā§āĻ¸ āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻāĻāĻ¨ā§āĻ¯ āĻāĻāĻ āĻāĻ°ā§āĻ¨Â
git fast-import
Â
āĻāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻŋāĻ āĻāĻŋāĻ āĻĄāĻžāĻāĻž āĻ°āĻžāĻāĻ āĻāĻ°āĻ¤ā§ stdin āĻĨā§āĻā§ āĻāĻŋāĻā§ āĻ¸āĻŋāĻŽā§āĻĒāĻ˛ āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻāĻļāĻ¨āĻ¸ āĻ°āĻŋāĻĄ āĻāĻ°ā§āĨ¤ āĻ°-āĻāĻŋāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻ¸ āĻ°āĻžāĻ¨ āĻāĻ°āĻžāĻ¨ā§āĻ° āĻā§ā§ā§ āĻāĻŋāĻāĻŦāĻž āĻ° āĻ āĻŦāĻā§āĻā§āĻ āĻ°āĻžāĻāĻ āĻāĻ°āĻžāĻ° āĻā§ā§ā§ āĻāĻ āĻāĻĒāĻžā§ā§ āĻāĻŋāĻ āĻ āĻŦāĻā§āĻā§āĻ āĻā§āĻ°āĻŋā§ā§āĻ āĻāĻ°āĻž āĻŦā§āĻļāĻŋ āĻ¸āĻšāĻāĨ¤(āĻāĻ°ā§ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ¤ā§ āĻā§āĻ˛āĻŋāĻ āĻāĻ°ā§āĻ¨ āĻāĻŋāĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨āĻžāĻ˛āĻ¸)āĨ¤ āĻāĻāĻžāĻŦā§ āĻāĻĒāĻ¨āĻŋ āĻ¸āĻšāĻā§āĻ āĻāĻāĻāĻŋ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻ˛āĻŋāĻā§ āĻĢā§āĻ˛āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ (āĻ¯āĻž āĻĨā§āĻā§ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§) āĻĨā§āĻā§ āĻĒā§āĻ°ā§ā§āĻāĻ¨ā§ā§ āĻāĻ¨āĻĢāĻ°āĻŽā§āĻļāĻ¨ āĻ°āĻŋāĻĄ āĻāĻ°ā§ āĻāĻ¨āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŦāĻ stdout āĻ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻāĻ¨ā§āĻ¸āĻā§āĻ°āĻžāĻāĻļāĻ¨ āĻšāĻŋāĻ¸ā§āĻŦā§ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻ°ā§āĨ¤ āĻāĻ°āĻĒāĻ° āĻāĻĒāĻ¨āĻŋ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋ āĻ°āĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻāĻĒā§āĻāĻāĻŋÂ git fast-import āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ āĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻāĻ° āĻāĻ¨āĻĒā§āĻ āĻšāĻŋāĻ¸ā§āĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§āĻ¨āĨ¤
Â
āĻ¸āĻšāĻā§ āĻŦāĻ˛āĻ¤ā§ āĻā§āĻ˛ā§, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻ¸āĻŋāĻŽā§āĻĒāĻ˛ āĻāĻŽā§āĻĒā§āĻ°ā§āĻāĻžāĻ° āĻ˛āĻŋāĻāĻŦā§āĻ¨āĨ¤ āĻŽāĻ¨ā§ āĻāĻ°ā§āĻ¨ āĻāĻĒāĻ¨āĻŋ āĻāĻžāĻ°ā§āĻ¨ā§āĻ āĻ āĻāĻžāĻ āĻāĻ°āĻā§āĻ¨, āĻāĻĒāĻ¨āĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻā§āĻā§āĻ āĻŽāĻžāĻā§ āĻŽāĻžāĻā§ āĻāĻĒāĻŋ āĻāĻ°ā§ āĻāĻāĻāĻŋ time-stamped back_YYYY_MM_DD āĻŦā§āĻ¯āĻžāĻāĻžāĻĒ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¤ā§ āĻāĻĒāĻŋ āĻāĻ°ā§ āĻŦā§āĻ¯āĻžāĻāĻžāĻĒ āĻšāĻŋāĻ¸ā§āĻŦā§ āĻ°āĻžāĻā§āĻ¨, āĻāĻāĻ¨ āĻāĻĒāĻ¨āĻŋ āĻāĻžāĻā§āĻā§āĻ¨ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻā§āĻā§āĻ āĻā§ āĻāĻŋāĻ āĻ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻ¤ā§āĨ¤ āĻāĻ° āĻāĻĒāĻ¨āĻžāĻ° āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ° āĻ¸ā§āĻā§āĻ°āĻžāĻāĻāĻžāĻ° āĻ¨āĻŋāĻā§āĻ° āĻŽāĻ¤āĻ
$ ls /opt/import_from
back_2014_01_02
back_2014_01_04
back_2014_01_14
back_2014_02_03
current
āĻāĻāĻāĻŋ āĻāĻŋāĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻ˛ā§ āĻāĻā§ āĻāĻžāĻ¨āĻ¤ā§ āĻšāĻŦā§ āĻāĻŋāĻ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻ° āĻĄāĻžāĻāĻž āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§āĨ¤ āĻāĻļāĻž āĻāĻ°āĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻ¨ā§ āĻāĻā§ āĻ¯ā§, āĻāĻŋāĻ āĻŽā§āĻ˛āĻ¤ āĻāĻŽāĻŋāĻ āĻ āĻŦāĻā§āĻā§āĻ āĻāĻ° āĻāĻāĻāĻŋ āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻ āĻ¯āĻž āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻā§āĻ¨ā§āĻ āĻāĻ° āĻ¸ā§āĻ¨ā§āĻ¯āĻžāĻĒāĻļāĻ (āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ°ā§āĻ¸āĻĒāĻ¨ā§āĻ¸ā§āĻ° āĻāĻĒāĻŋ) āĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§āĨ¤ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¯āĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¤āĻž āĻšāĻ˛ā§ fast-import āĻā§ āĻāĻ¨ā§āĻā§āĻ¨ā§āĻ āĻāĻ° āĻ¸ā§āĻ¨ā§āĻ¯āĻžāĻĒāĻļāĻ āĻā§āĻ˛ā§ āĻŦāĻ˛ā§ āĻĻā§ā§āĻž, āĻā§āĻ¨ āĻāĻŽāĻŋāĻ āĻĄāĻžāĻāĻž āĻ¤āĻžāĻĻā§āĻ°āĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻā§ āĻāĻŦāĻ āĻ˛āĻŋāĻ¸ā§āĻā§ āĻ¤āĻžāĻ°āĻž āĻāĻŋ āĻ āĻ°ā§āĻĄāĻžāĻ° āĻŽā§āĻāĻ¨āĻā§āĻāĻ¨ āĻāĻ°āĻā§āĨ¤ āĻāĻĒāĻ¨āĻžāĻ° āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻŋ āĻšāĻŦā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¸ā§āĻ¨ā§āĻ¯āĻžāĻĒāĻļāĻ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ° āĻāĻ¨ā§āĻā§āĻ¨ā§āĻā§ āĻāĻŽāĻŋāĻ āĻā§āĻ°āĻŋā§ā§āĻ āĻāĻ°āĻž āĻ¯āĻžāĻ¤ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻŽāĻŋāĻ āĻ¤āĻžāĻ° āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻāĻŽāĻŋāĻ āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ˛āĻŋāĻā§āĻāĻĄ āĻĨāĻžāĻā§āĨ¤Â
āĻāĻŽāĻ°āĻž āĻĻā§āĻā§āĻāĻŋ āĻāĻāĻāĻŋ āĻāĻŋāĻ-āĻāĻ¨āĻĢā§āĻ°ā§āĻ¸āĻĄ āĻĒāĻ˛āĻŋāĻ¸āĻŋāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ, āĻāĻŽāĻ°āĻž āĻ¤āĻž āĻ°ā§āĻŦā§ āĻ¤ā§ āĻ˛āĻŋāĻāĻŦā§, āĻāĻžāĻ°āĻŖ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻŽāĻ°āĻž āĻ°ā§āĻŦā§ āĻ¤ā§ āĻāĻžāĻ āĻāĻ°āĻŋ āĻāĻžāĻ°āĻŖ āĻāĻāĻŋ āĻ¸āĻšāĻāĻŦā§āĻ§ā§āĻ¯āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻāĻžāĻāĻ˛ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻ¯ā§āĻā§āĻ¨ā§ āĻ˛ā§āĻ¯āĻžāĻāĻā§ā§ā§āĻā§ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻāĻŋ āĻāĻ°ā§ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻ°āĻāĻžāĻ° āĻļā§āĻ§ā§ āĻ¸āĻ āĻŋāĻ āĻāĻ¨āĻĢāĻ°āĻŽā§āĻļāĻ¨ āĻā§āĻ˛ā§ stdout. āĻ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻšāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻ° āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻ¨ā§āĻĄā§āĻ āĻ āĻ°āĻžāĻ¨ āĻāĻ°ā§ āĻĨāĻžāĻā§āĻ¨, āĻ¤āĻžāĻ° āĻŽāĻžāĻ¨ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸āĻ¤āĻ°ā§āĻ āĻĨāĻžāĻāĻ¤ā§ āĻšāĻŦā§ āĻ¯āĻžāĻ¤ā§ āĻ˛āĻžāĻāĻ¨ā§āĻ° āĻļā§āĻˇā§ āĻā§āĻ¯āĻžāĻ°āĻŋā§ā§āĻ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻ¨āĻž āĻāĻ°ā§, āĻāĻā§āĻˇā§āĻ¤ā§āĻ°ā§Â git fast-import āĻā§āĻŦāĻ āĻšā§āĻ˛ā§āĻĒāĻĢā§āĻ˛ āĻāĻžāĻ°āĻŖ āĻāĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ˛āĻžāĻāĻ¨ āĻĢāĻŋāĻĄāĻ¸ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻāĻ°ā§, āĻā§āĻ¯āĻžāĻ°āĻŋā§ā§āĻ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻ˛āĻžāĻāĻ¨ āĻĢāĻŋāĻĄāĻ¸ (CRLF) āĻ āĻŦāĻžāĻ§āĻž āĻĻā§ā§ āĻ¯āĻž āĻāĻāĻ¨ā§āĻĄā§ āĻāĻāĻ āĻāĻ°ā§āĨ¤
Â
āĻļā§āĻ°ā§āĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻžāĻ°ā§āĻā§āĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻŦā§āĻ¨ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¸āĻžāĻŦāĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻāĻāĻĄā§āĻ¨ā§āĻāĻŋāĻĢāĻžāĻ āĻāĻ°āĻŦā§āĻ¨,āĻ¯āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ āĻšāĻ˛ā§ āĻ¸ā§āĻ āĻ¸ā§āĻ¨ā§āĻ¯āĻžāĻĒāĻļāĻ āĻ¯āĻž āĻāĻĒāĻ¨āĻŋ āĻāĻŽāĻŋāĻ āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¸āĻžāĻŦāĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¤ā§ āĻā§āĻā§āĻ āĻāĻ°āĻŦā§āĻ¨ āĻāĻŦāĻ āĻ¤āĻž āĻāĻā§āĻ¸āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒā§āĻ°ā§ā§āĻāĻ¨ā§ā§ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻā§āĻ˛ā§ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻ°āĻŦā§āĻ¨āĨ¤ āĻāĻĒāĻ¨āĻžāĻ° āĻŦā§āĻ¯āĻžāĻ¸āĻŋāĻ āĻŽā§āĻāĻ¨ āĻ˛ā§āĻĒāĻāĻŋ āĻĻā§āĻāĻ¤ā§ āĻāĻ°āĻāĻŽ āĻšāĻŦā§āĻÂ
last_mark = nil
# loop through the directories
Dir.chdir(ARGV[0]) do
Dir.glob("*").each do |dir|
next if File.file?(dir)
# move into the target directory
Dir.chdir(dir) do
last_mark = print_export(dir, last_mark)
end
end
end
āĻāĻāĻžāĻ¨ā§ āĻāĻĒāĻ¨āĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¤ā§ print_export āĻ°āĻžāĻ¨ āĻāĻ°āĻā§āĻ¨,āĻ¯āĻž āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻ¸ā§āĻ¨ā§āĻ¯āĻžāĻĒāĻļāĻ āĻāĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻ āĻāĻŦāĻ āĻŽāĻžāĻ°ā§āĻ āĻ¨āĻŋā§ā§ āĻ¨ā§ā§ āĻāĻŦāĻ āĻ¤āĻž āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¸ā§āĻ¨ā§āĻ¯āĻžāĻĒāĻļāĻ āĻ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻāĻ°ā§, āĻ¯āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ āĻŋāĻāĻ āĻžāĻ āĻāĻžāĻŦā§ āĻ˛āĻŋāĻāĻ āĻ¤ā§āĻ°āĻŋ āĻšā§āĨ¤ āĻŽāĻžāĻ°ā§āĻ āĻšāĻā§āĻā§ āĻāĻāĻāĻŋ āĻāĻāĻĄā§āĻ¨ā§āĻāĻŋāĻĢāĻžā§āĻžāĻ°ā§āĻ°Â fast-import āĻāĻžāĻ°ā§āĻŽ āĻ¯āĻž āĻāĻāĻāĻŋ āĻāĻŽāĻŋāĻ āĻā§āĻ°āĻŋā§ā§āĻ āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻĨā§āĻ āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻšā§āĨ¤ āĻ āĻ°ā§āĻĨāĻžā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻŽāĻŋāĻ āĻā§ āĻāĻāĻāĻŋ āĻāĻ°ā§ āĻŽāĻžāĻ°ā§āĻ āĻĻā§ā§āĻž āĻšā§ āĻ¯āĻžāĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻ āĻ¨ā§āĻ¯ āĻāĻŽāĻŋāĻ āĻā§āĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻāĻŽāĻŋāĻ āĻā§ āĻ˛āĻŋāĻā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻ¸ā§āĻ¤āĻ°āĻžāĻ āĻĒā§āĻ°āĻĨāĻŽā§āĻ print_export āĻŽā§āĻĨāĻĄ āĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ° āĻ¨āĻžāĻŽ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻŽāĻžāĻ°ā§āĻ āĻā§āĻ¨āĻžāĻ°ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤Â
mark = convert_dir_to_mark(dir)
āĻāĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻā§āĻ˛ā§ āĻ¨āĻŋā§ā§ āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻ°ā§ āĻŦāĻžāĻ¨āĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻ āĻ ā§āĻ¯āĻžāĻ°ā§āĻ° āĻāĻ¨āĻĄā§āĻā§āĻ¸ āĻā§āĻ¯āĻžāĻ˛ā§āĻā§ āĻŽāĻžāĻ°ā§āĻ āĻšāĻŋāĻ¸ā§āĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻāĻžāĻ°āĻŖ āĻŽāĻžāĻ°ā§āĻ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻāĻŋāĻāĻžāĻ° āĻā§āĻ¯āĻžāĻ˛ā§ āĻšāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻĒāĻ¨āĻžāĻ° āĻŽā§āĻĨāĻĄāĻāĻŋ āĻšāĻŦā§ āĻ āĻŋāĻ āĻāĻ°āĻāĻŽāĻ
$marks = []
def convert_dir_to_mark(dir)
if !$marks.include?(dir)
$marks << dir
end
($marks.index(dir) + 1).to_s
end
āĻāĻāĻ¨ āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻŽāĻŋāĻ āĻāĻ° āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻāĻŋāĻāĻžāĻ° āĻ°āĻŋāĻĒā§āĻ°ā§āĻā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻāĻā§, āĻāĻĒāĻ¨āĻžāĻ° āĻāĻŽāĻŋāĻ āĻāĻ° āĻŽā§āĻāĻžāĻĄāĻžāĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¤āĻžāĻ°āĻŋāĻā§āĻ° āĻĒā§āĻ°ā§ā§āĻāĻ¨āĨ¤ āĻāĻžāĻ°āĻŖ āĻ¤āĻžāĻ°āĻŋāĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ° āĻ¨āĻžāĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻĨāĻžāĻāĻ˛ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻĄāĻžāĻāĻž āĻĒāĻžāĻ āĻžāĻ¨ā§āĻ° āĻ¸āĻŽā§ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻšāĻŦā§āĨ¤ āĻāĻĒāĻ¨āĻžāĻ° print_export āĻĢāĻžāĻāĻ˛ āĻāĻ° āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ˛āĻžāĻāĻ¨āĻāĻŋ āĻšāĻŦā§āĻ
date = convert_dir_to_date(dir)
āĻāĻ˛ā§āĻ¨ āĻĻā§āĻāĻŋÂ convert_dir_to_date āĻ āĻāĻŋ āĻāĻā§āĻ
def convert_dir_to_date(dir)
if dir == 'current'
return Time.now().to_i
else
dir = dir.gsub('back_', '')
(year, month, day) = dir.split('_')
return Time.local(year, month, day).to_i
end
end
Â
āĻāĻÂ convert_dir_to_date āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ° āĻ¤āĻžāĻ°āĻŋāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻāĻŋāĻāĻžāĻ° āĻā§āĻ¯āĻžāĻ˛ā§ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻāĻ°ā§āĨ¤ āĻ¸āĻ°ā§āĻŦāĻļā§āĻˇ āĻ¯ā§ āĻŽā§āĻāĻž-āĻāĻ¨āĻĢāĻ°āĻŽā§āĻļāĻ¨ āĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻĻāĻ°āĻāĻžāĻ° āĻ¤āĻžāĻšāĻ˛ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻŽāĻŋāĻ āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻ°ā§ āĻāĻŽāĻŋāĻāĻžāĻ° āĻĄāĻžāĻāĻž āĻ¯āĻž āĻāĻĒāĻ¨āĻŋ āĻā§āĻ˛ā§āĻŦāĻžāĻ˛ āĻā§āĻ¯āĻžāĻ°āĻŋā§ā§āĻŦāĻ˛ āĻšāĻŋāĻ¸ā§āĻŦā§ āĻĄāĻŋāĻā§āĻ˛ā§ā§āĻžāĻ° āĻāĻ°āĻŦā§āĻ¨āĻ
$author = 'John Doe '
āĻāĻāĻ¨ āĻāĻĒāĻ¨āĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻŽā§āĻĒā§āĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻŋāĻ āĻĄāĻžāĻāĻž āĻā§āĻ˛ā§ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤āĨ¤Â āĻāĻ¨āĻŋāĻļāĻŋā§āĻžāĻ˛ āĻāĻ¨āĻĢāĻ°āĻŽā§āĻļāĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§ āĻ¯ā§, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻāĻŽāĻŋāĻ āĻ āĻŦāĻā§āĻā§āĻ āĻĄāĻŋāĻĢāĻžāĻāĻ¨ āĻāĻ°ā§āĻā§āĻ¨, āĻ āĻŦāĻā§āĻā§āĻāĻāĻŋ āĻā§āĻ¨ āĻŦā§āĻ°āĻžāĻā§āĻā§ āĻāĻā§ (āĻ āĻāĻžāĻāĻāĻŋ āĻāĻ°ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻā§āĻ¨āĻžāĻ°ā§āĻ āĻāĻ°āĻž āĻŽāĻžāĻ°ā§āĻ āĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§), āĻāĻŽāĻŋāĻāĻžāĻ° āĻāĻ° āĻāĻ¨āĻĢāĻ°āĻŽā§āĻļāĻ¨ āĻāĻŦāĻ āĻāĻŽāĻŋāĻ āĻāĻ°āĻž āĻŽā§āĻ¯āĻžāĻ¸ā§āĻāĻāĻŋ āĻāĻŦāĻ āĻ¸āĻŦāĻļā§āĻˇā§ āĻ¯āĻĻāĻŋ āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻā§āĻ¨ā§ āĻāĻŽāĻŋāĻ āĻĨā§āĻā§ āĻĨāĻžāĻā§ āĻ¸ā§āĻāĻŋāĨ¤ āĻā§āĻĄāĻāĻŋ āĻĻā§āĻāĻ¤ā§ āĻāĻŋāĻā§āĻāĻž āĻāĻ°āĻāĻŽāĻ
# print the import information
puts 'commit refs/heads/master'
puts 'mark :' + mark
puts "committer #{$author} #{date} -0700"
export_data('imported from ' + dir)
puts 'from :' + last_mark if last_mark
āĻāĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ¸āĻšāĻ āĻāĻĒāĻžā§ āĻšāĻā§āĻā§ āĻāĻžāĻāĻŽ āĻā§āĻ¨ (-ā§Ļā§ā§Ļā§Ļ) āĻā§ āĻāĻāĻĻāĻŽ āĻšāĻžāĻ°ā§āĻĄāĻā§āĻĄ āĻāĻ°ā§ āĻĻā§ā§āĻžāĨ¤ āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻ āĻ¨ā§āĻ¯ āĻā§āĻ¨ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĨā§āĻā§ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°ā§ āĻĨāĻžāĻā§āĻ¨ āĻ¤āĻŦā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻžāĻāĻŽ āĻā§āĻ¨ āĻā§ āĻāĻāĻāĻŋ āĻ āĻĢāĻ¸ā§āĻ āĻšāĻŋāĻ¸ā§āĻŦā§ āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻžāĻ āĻāĻ°ā§ āĻĻāĻŋāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻ° āĻāĻŽāĻŋāĻ āĻŽā§āĻ¯āĻžāĻ¸ā§āĻāĻāĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻāĻāĻŋ āĻ¸ā§āĻĒā§āĻļāĻžāĻ˛ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ āĻŽā§āĻāĻ¨āĻā§āĻāĻ¨ āĻāĻ°āĻŦā§āĨ¤Â
data (size)\n(contents)
āĻāĻ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ āĻāĻŋ āĻā§āĻžāĻ°ā§āĻĄ āĻĄāĻžāĻāĻž ( āĻĄāĻžāĻāĻžāĻ° āĻ¸āĻžāĻāĻ, āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ˛āĻžāĻāĻ¨ āĻāĻŦāĻ āĻĢāĻžāĻāĻ¨āĻžāĻ˛āĻŋ āĻĄāĻžāĻāĻž āĻāĻ¨ā§āĻā§āĻ¨ā§āĻ) āĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻā§āĨ¤ āĻāĻžāĻ°āĻŖ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻ āĻ¸ā§āĻāĻŽ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻāĻāĻŋāĻ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻ¤ā§ āĻĢāĻžāĻāĻ˛ āĻāĻ¨ā§āĻā§āĻ¨ā§āĻ āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻ¸ā§āĻāĻžāĻ¨ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻŽā§āĻĨāĻĄ āĻā§āĻ°āĻŋā§ā§āĻ āĻāĻ°āĻŦā§āĻ¨āĨ¤
export_data:
def export_data(string)
print "data #{string.size}\n#{string}"
end
āĻŦāĻžāĻāĻŋ āĻĨāĻžāĻāĻ˛ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¸ā§āĻ¨ā§āĻ¯āĻžāĻĒāĻļāĻ āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻĢāĻžāĻāĻ˛ āĻāĻ¨ā§āĻā§āĻ¨ā§āĻ āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻžāĻ āĻāĻ°ā§ āĻĻā§ā§āĻžāĨ¤ āĻāĻāĻž āĻā§āĻŦāĻ āĻ¸āĻšāĻ āĻāĻžāĻ, āĻāĻžāĻ°āĻŖ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻāĻāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¤ā§ āĻāĻā§āĨ¤ āĻ¤āĻžāĻ āĻāĻĒāĻ¨āĻŋ āĻāĻžāĻāĻ˛ā§āĻ deleteall āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ (āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻā§āĻ¨ā§āĻ āĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§) āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻāĻ āĻāĻ°ā§ āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻ°āĻĒāĻ° āĻĻā§āĻāĻŦā§āĻ¨ āĻāĻŋāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¸ā§āĻ¨ā§āĻ¯āĻžāĻĒāĻļāĻ āĻ āĻŋāĻāĻāĻ āĻžāĻāĻāĻžāĻŦā§ āĻ°ā§āĻāĻ°ā§āĻĄ āĻāĻ°āĻā§āĨ¤
puts 'deleteall'
Dir.glob("**/*").each do |file|
next if !File.file?(file)
inline_data(file)
end
āĻ¨ā§āĻāĻ āĻāĻžāĻ°āĻŖ āĻ āĻ¨ā§āĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¤āĻžāĻĻā§āĻ° āĻĒā§āĻ¨āĻ°āĻžā§ āĻāĻŋāĻāĻŋāĻ āĻāĻ°āĻžāĻāĻžāĻā§āĻ āĻāĻāĻāĻŋ āĻāĻŽāĻŋāĻ āĻĨā§āĻā§ āĻ āĻ¨ā§āĻ¯āĻāĻŋāĻ° āĻā§āĻā§āĻ āĻšāĻŋāĻ¸ā§āĻŦā§ āĻŽāĻ¨ā§ āĻāĻ°ā§āĨ¤ fast-import āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻŦā§āĻāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻŽāĻŋāĻ āĻ āĻā§āĻ¨ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛ā§ āĻāĻĄ āĻāĻ°āĻž āĻšā§ā§āĻā§, āĻŽā§āĻā§ āĻĢā§āĻ˛āĻž āĻšā§ā§āĻā§ āĻ āĻĨāĻŦāĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻšā§ā§āĻā§ āĻāĻŦāĻ āĻā§āĻ¨āĻā§āĻ˛ā§ āĻ¨āĻ¤ā§āĻ¨ āĻāĻ¨ā§āĻā§āĻ¨ā§āĻāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¸ā§āĻ¨āĻžāĻĒāĻļāĻ āĻā§āĻ˛ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻā§āĻ¯āĻžāĻ˛āĻā§āĻ˛ā§āĻ āĻāĻ°ā§āĻ āĻāĻ āĻĄāĻžāĻāĻžāĻā§āĻ˛ā§ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°āĻ¤ā§āĻ¨ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¸ā§āĻāĻž āĻā§āĻŦāĻ āĻāĻ āĻŋāĻ¨ āĻšāĻ¤ā§āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻāĻžāĻāĻ˛ā§ āĻāĻŋāĻ āĻ āĻ¸āĻŦ āĻĄāĻžāĻāĻž āĻĻāĻŋā§ā§ āĻāĻŋāĻ āĻāĻ° āĻāĻĒāĻ°ā§āĻ āĻāĻ āĻĻāĻžā§āĻŋāĻ¤ā§āĻŦ āĻā§ā§ā§ āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻ¸āĻŦ āĻĄāĻžāĻāĻž āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯āĨ¤Â
Â
āĻ¯āĻĻāĻŋ āĻāĻāĻž āĻāĻĒāĻ¨āĻžāĻ° āĻĄāĻžāĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¯ā§āĻā§ āĻšā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻĄāĻžāĻāĻž āĻāĻ āĻāĻĒāĻžā§ā§ āĻāĻŋāĻāĻžāĻŦā§ āĻĒā§āĻ°ā§āĻāĻžāĻāĻĄ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻāĻāĻžāĻ° āĻĄāĻŋāĻā§āĻāĻ˛āĻ¸ āĻĻā§āĻāĻ¤ā§ fast-import āĻāĻ° āĻŽā§āĻāĻ¨ āĻĒā§āĻāĻ āĻā§āĻ āĻāĻ°ā§āĻ¨āĨ¤Â
Â
āĻ¨āĻ¤ā§āĻ¨ āĻĢāĻžāĻāĻ˛ āĻāĻ¨ā§āĻā§āĻ¨ā§āĻ āĻāĻ° āĻ˛āĻŋāĻ¸ā§āĻ āĻāĻ°āĻ¤ā§ āĻ āĻĨāĻŦāĻž āĻ¨āĻ¤ā§āĻ¨ āĻāĻ¨ā§āĻā§āĻ¨ā§āĻ āĻ¸āĻŽā§āĻŦāĻ˛āĻŋāĻ¤ āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻĢāĻžāĻāĻ˛ āĻā§ āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻāĻāĻŋ āĻšāĻā§āĻā§āĻ
M 644 inline path/to/file
data (size)
(file contents)
āĻāĻāĻžāĻ¨ā§ ā§Ŧā§Ēā§Ē āĻšāĻā§āĻā§ āĻŽā§āĻĄ (āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻžāĻā§ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻā§āĻŦāĻ˛ āĻĢāĻžāĻāĻ˛ āĻĨāĻžāĻā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸ā§āĻāĻž āĻĄāĻŋāĻā§āĻā§āĻ āĻāĻ°ā§ ā§Ŧā§Ēā§Ē āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ ā§ā§Ģā§ĢāĻā§ āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻžāĻ āĻāĻ°ā§ āĻĻāĻŋāĻ¤ā§ āĻšāĻŦā§) āĻāĻŦāĻ āĻāĻ¨āĻ˛āĻžāĻāĻ¨ āĻĻāĻŋā§ā§ āĻŦā§āĻāĻžā§ āĻāĻĒāĻ¨āĻŋ āĻāĻ āĻ˛āĻžāĻāĻ¨ā§āĻ° āĻĒāĻ°āĻĒāĻ° āĻ āĻāĻ¨ā§āĻā§āĻ¨ā§āĻ āĻā§āĻ˛ā§āĻ° āĻ˛āĻŋāĻ¸ā§āĻ āĻāĻ°āĻŦā§āĻ¨āĨ¤ āĻāĻĒāĻ¨āĻžāĻ°Â inline_data āĻŽā§āĻĨāĻĄāĻāĻŋ āĻšāĻŦā§ āĻāĻ°āĻāĻŽāĻ
def inline_data(file, code = 'M', mode = '644')
content = File.read(file)
puts "#{code} #{mode} inline #{file}"
export_data(content)
end
āĻāĻĒāĻ¨āĻŋ āĻāĻā§ āĻĨā§āĻā§ āĻĄāĻŋāĻĢāĻžāĻāĻ¨ āĻāĻ°āĻž export_data āĻŽā§āĻĨāĻĄ āĻā§ āĻĒā§āĻ¨āĻ°āĻžā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§āĻ¨, āĻāĻžāĻ°āĻŖ āĻāĻāĻž āĻāĻ°āĻž āĻāĻ° āĻāĻĒāĻ¨āĻžāĻ° āĻāĻŽāĻŋāĻ āĻŽā§āĻ¯āĻžāĻ¸ā§āĻ āĻĄāĻžāĻāĻž āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻžāĻ āĻāĻ°āĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻāĻāĨ¤
āĻāĻāĻ¨ āĻāĻĒāĻ¨āĻžāĻ° āĻ¸āĻ°ā§āĻŦāĻļā§āĻˇ āĻāĻžāĻāĻāĻŋ āĻšāĻā§āĻā§ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻŽāĻžāĻ°ā§āĻāĻāĻŋāĻā§ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻāĻ°ā§ āĻĻā§ā§āĻž āĻ¯āĻžāĻ¤ā§ āĻāĻāĻŋ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻāĻāĻžāĻ°ā§āĻļāĻ¨ā§ āĻĒāĻžāĻ¸ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
return mark
āĻ¨ā§āĻāĻ
āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻ¨ā§āĻĄā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĨāĻžāĻā§āĻ¨ āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻļāĻŋāĻāĻ° āĻšāĻ¤ā§ āĻšāĻŦā§ āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻž āĻāĻā§āĻ¸āĻā§āĻ°āĻž āĻ¸ā§āĻā§āĻĒ āĻ¨āĻŋā§ā§āĻā§āĻ¨āĨ¤ āĻāĻā§āĻ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°ā§āĻāĻŋ āĻ¯ā§ āĻāĻāĻ¨ā§āĻĄā§āĻÂ āĻ¨āĻŋāĻ āĻ˛āĻžāĻāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ā§ CRLF āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŋāĻ fast-import LF āĻāĻ¸ā§āĻĒā§āĻā§āĻ āĻāĻ°ā§āĨ¤ āĻāĻĒāĻ¨āĻžāĻā§ āĻ°ā§āĻŦāĻŋāĻā§ CRLF āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ LF āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻŦāĻ˛āĻ¤ā§ āĻšāĻŦā§āĨ¤
$stdout.binmode
āĻŦā§āĻ¯āĻžāĻ¸, āĻāĻāĻžāĻ¨ā§āĻ āĻļā§āĻˇāĨ¤ āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°ā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻž āĻ¯ā§āĻāĻž āĻĻāĻžāĻā§āĻžāĻ˛ā§ āĻ¤āĻž āĻšāĻ˛ā§āĻ
#!/usr/bin/env ruby
$stdout.binmode
$author = "John Doe "
$marks = []
def convert_dir_to_mark(dir)
if !$marks.include?(dir)
$marks << dir
end
($marks.index(dir)+1).to_s
end
def convert_dir_to_date(dir)
if dir == 'current'
return Time.now().to_i
else
dir = dir.gsub('back_', '')
(year, month, day) = dir.split('_')
return Time.local(year, month, day).to_i
end
end
def export_data(string)
print "data #{string.size}\n#{string}"
end
def inline_data(file, code='M', mode='644')
content = File.read(file)
puts "#{code} #{mode} inline #{file}"
export_data(content)
end
def print_export(dir, last_mark)
date = convert_dir_to_date(dir)
mark = convert_dir_to_mark(dir)
puts 'commit refs/heads/master'
puts "mark :#{mark}"
puts "committer #{$author} #{date} -0700"
export_data("imported from #{dir}")
puts "from :#{last_mark}" if last_mark
puts 'deleteall'
Dir.glob("**/*").each do |file|
next if !File.file?(file)
inline_data(file)
end
mark
end
# Loop through the directories
last_mark = nil
Dir.chdir(ARGV[0]) do
Dir.glob("*").each do |dir|
next if File.file?(dir)
# move into the target directory
Dir.chdir(dir) do
last_mark = print_export(dir, last_mark)
end
end
end
āĻ¯āĻĻāĻŋ āĻāĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻāĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻ°āĻžāĻ¨ āĻāĻ°ā§āĻ¨, āĻāĻĒāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻā§āĻ¨ā§āĻ āĻāĻŋ āĻĻā§āĻāĻ¤ā§ āĻāĻ°āĻāĻŽ āĻšāĻŦā§āĻ
$ ruby import.rb /opt/import_from
commit refs/heads/master
mark :1
committer John Doe 1388649600 -0700
data 29
imported from back_2014_01_02deleteall
M 644 inline README.md
data 28
# Hello
This is my readme.
commit refs/heads/master
mark :2
committer John Doe 1388822400 -0700
data 29
imported from back_2014_01_04from :1
deleteall
M 644 inline main.rb
data 34
#!/bin/env ruby
puts "Hey there"
M 644 inline README.md
(...)
āĻāĻāĻ¨ āĻāĻŽā§āĻĒā§āĻ°ā§āĻāĻžāĻ°āĻāĻŋāĻā§ āĻ°āĻžāĻ¨ āĻāĻ°āĻ¤ā§,āĻāĻ āĻāĻāĻāĻĒā§āĻ āĻā§ āĻĒāĻžāĻāĻĒāĻ˛āĻžāĻāĻ¨ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻŋāĻ fast-import āĻ āĻĒāĻžāĻ āĻžāĻ¨ āĻ¯ā§āĻ āĻāĻŋāĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻā§āĻā§āĻ¨āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻāĻžāĻāĻ˛ā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻā§āĻ°āĻŋā§ā§āĻ āĻāĻ°ā§ āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻ° āĻ¸ā§āĻāĻžāĻ°ā§āĻāĻŋāĻ āĻĒā§ā§āĻ¨ā§āĻ āĻāĻ° āĻāĻ¨ā§āĻ¯ git init āĻ°āĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻ°āĻĒāĻ° āĻāĻĒāĻ¨āĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻŋ āĻ°āĻžāĻ¨ āĻāĻ°āĻŦā§āĻ¨āĨ¤
$ git init
Initialized empty Git repository in /opt/import_to/.git/
$ ruby import.rb /opt/import_from | git fast-import
git-fast-import statistics:
---------------------------------------------------------------------
Alloc'd objects: 5000
Total objects: 13 ( 6 duplicates )
blobs : 5 ( 4 duplicates 3 deltas of 5 attempts)
trees : 4 ( 1 duplicates 0 deltas of 4 attempts)
commits: 4 ( 1 duplicates 0 deltas of 0 attempts)
tags : 0 ( 0 duplicates 0 deltas of 0 attempts)
Total branches: 1 ( 1 loads )
marks: 1024 ( 5 unique )
atoms: 2
Memory total: 2344 KiB
pools: 2110 KiB
objects: 234 KiB
---------------------------------------------------------------------
pack_report: getpagesize() = 4096
pack_report: core.packedGitWindowSize = 1073741824
pack_report: core.packedGitLimit = 8589934592
pack_report: pack_used_ctr = 10
pack_report: pack_mmap_calls = 5
pack_report: pack_open_windows = 2 / 2
pack_report: pack_mapped = 1457 / 1457
---------------------------------------------------------------------
āĻĻā§āĻāĻ¤ā§āĻ āĻĒāĻžāĻā§āĻā§āĻ¨, āĻ¯āĻāĻ¨ āĻāĻāĻŋ āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻšā§, āĻāĻāĻŋ āĻāĻŋ āĻāĻŋ āĻāĻžāĻ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻāĻ°āĻ˛ā§ āĻ¸ā§ āĻ¸āĻāĻā§āĻ°āĻžāĻ¨ā§āĻ¤ āĻāĻŋāĻā§ āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ¸āĻāĻŋāĻā§āĻ¸ āĻāĻĒāĻ¨āĻžāĻā§ āĻĻāĻŋāĻā§āĻā§āĨ¤ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻĒāĻ¨āĻŋ ā§§ā§Š āĻāĻŋ āĻ āĻŦāĻā§āĻā§āĻ āĻā§ āĻā§āĻāĻžāĻ˛ ā§ĒāĻāĻŋ āĻāĻŽāĻŋāĻ āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻāĻāĻŋ āĻŦā§āĻ°āĻžāĻā§āĻ āĻ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°ā§āĻā§āĻ¨āĨ¤ āĻāĻāĻ¨ āĻāĻĒāĻ¨āĻŋ git log āĻ°āĻžāĻ¨ āĻāĻ°ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻšāĻŋāĻ¸ā§āĻā§āĻ°āĻŋ āĻāĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦā§āĻ¨āĨ¤
$ git log -2
commit 3caa046d4aac682a55867132ccdfbe0d3fdee498
Author: John Doe
Date: Tue Jul 29 19:39:04 2014 -0700
imported from current
commit 4afc2b945d0d3c8cd00556fbe2e8224569dc9def
Author: John Doe
Date: Mon Feb 3 01:00:00 2014 -0700
imported from back_2014_02_03
āĻĢāĻžāĻāĻ¨āĻžāĻ˛āĻŋ,āĻ°ā§āĻĄāĻŋ āĻšā§ā§ āĻā§āĻ˛ā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻ¨ā§āĻĻāĻ° āĻāĻŦāĻ āĻā§āĻ˛āĻŋāĻ¨ āĻāĻŋāĻ āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋāĨ¤ āĻāĻāĻž āĻā§āĻŦāĻ āĻāĻ°ā§āĻ°āĻŋ āĻā§ā§āĻžāĻ˛ āĻ°āĻžāĻāĻž āĻ¯āĻžāĻ¤ā§ āĻā§āĻ¨ā§ āĻ¸ā§āĻā§āĻĒ āĻŦāĻžāĻĻ āĻ¨āĻž āĻĒā§ā§ āĻāĻŦāĻ āĻļā§āĻ°ā§āĻ¤ā§āĻ āĻ¯āĻžāĻ¤ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻā§āĻžāĻ°ā§āĻāĻŋāĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¤ā§ āĻā§āĻ¨ā§ āĻĢāĻžāĻāĻ˛ āĻ¨āĻž āĻĨāĻžāĻā§āĨ¤ āĻ¯āĻĻāĻŋ āĻĨā§āĻā§ āĻĨāĻžāĻā§ āĻ¸ā§āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻŦā§āĻ°āĻžāĻā§āĻ āĻā§ āĻ°āĻŋāĻ¸ā§āĻ āĻāĻ°ā§ āĻ¨āĻŋāĻ¤ā§ āĻšāĻŦā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§ āĻŽāĻžāĻ¸ā§āĻāĻžāĻ° āĻāĻā§āĨ¤
$ ls
$ git reset --hard master
HEAD is now at 3caa046 imported from current
$ ls
README.md main.rb
āĻāĻĒāĻ¨āĻŋ āĻāĻ fast-import āĻā§āĻ˛āĻāĻŋ āĻāĻžāĻā§ āĻ˛āĻžāĻāĻŋā§ā§ āĻāĻ°ā§ āĻ āĻ¨ā§āĻ āĻāĻŋāĻā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§āĻ¨ – āĻĄāĻŋāĻĢāĻžāĻ°ā§āĻ¨ā§āĻ āĻŽā§āĻĄÂ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄā§āĻ˛ āĻāĻ°āĻž, āĻŦāĻžāĻāĻ¨āĻžāĻ°āĻŋ āĻĄāĻžāĻāĻž, āĻŽāĻžāĻ˛ā§āĻāĻŋāĻĒāĻ˛ āĻŦā§āĻ°āĻžāĻā§āĻ āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻž (āĻŽāĻžāĻ°ā§āĻāĻŋāĻ), āĻĒā§āĻ°āĻā§āĻ°ā§āĻ¸ āĻāĻ¨ā§āĻĄāĻŋāĻā§āĻāĻ° āĻšāĻŋāĻ¸ā§āĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž, āĻāĻŦāĻ āĻāĻ°ā§ āĻ āĻ¨ā§āĻ āĻāĻŋāĻā§āĨ¤ āĻāĻ°ā§ āĻāĻŽāĻĒā§āĻ˛ā§āĻā§āĻ¸ āĻ¸āĻŋāĻā§ā§ā§āĻļāĻ¨ āĻ¸āĻŽā§āĻŦāĻ˛āĻŋāĻ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§āĻāĻ¤ā§ āĻāĻžāĻāĻ˛ā§ āĻāĻŋāĻ āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄ āĻāĻ°Â contrib/fast-import āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻĒāĻžāĻŦā§āĻ¨āĨ¤