Bei der Migration von Subversion zu Git müssen Sie daran denken, Ihrem Repository ein leeres Verzeichnis hinzuzufügen. Git kontrolliert keine leeren Verzeichnisse, daher müssen Sie einige Dateien dort ablegen. Einige Dateien sind `.gitignore``` und`
leer, aber ich persönlich versuche, `` `.gitkeep
in einen Rails-Stil zu setzen.
Grundsätzlich können Sie `find. -Type d -name .git -prune -o -type d -empty -exec touch {} /. Gitkeep \;`
ausführen. Das Tool, das ich dieses Mal erstellt habe, ist optional, z. B. die Funktion zum Überprüfen, welches Verzeichnis leer ist, bevor .gitkeep``` platziert wird, und die Möglichkeit, den
`.gitkeep``` Teil dieses Befehls anzugeben. Es ist eine zusätzliche Funktion.
Leere Verzeichnisse auflisten:
cd git-repo
git-empty-dir list
Platzieren Sie `` `.gitkeep``` in einem leeren Verzeichnis:
cd git-repo
git-empty-dir keep
Es gibt andere Optionen wie `--dir``` und`
--keeper```.
$ git-empty-dir keep --help
usage: git-empty-dir keep [-h] [--dir DIR] [--keeper KEEPER]
optional arguments:
-h, --help show this help message and exit
--dir DIR path to git directory
--keeper KEEPER dummy file name. Default is ".gitkeep"
git-empry-dir.py
git-empry-dir.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import argparse
import commands
import sys
def list(args):
command = "find %(dir)s -type d -name .git -prune -o -type d -empty" % vars(args)
result = commands.getstatusoutput(command)
print result[1]
if result[0] > 0:
sys.exit(1)
def keep(args):
command = "find %(dir)s -type d -name .git -prune -o -type d -empty -exec touch {}/%(keeper)s \;" % vars(args)
result = commands.getstatusoutput(command)
print result[1]
if result[0] > 0:
sys.exit(1)
def check_git_dir(dir):
git_dir = dir + '/.git'
if os.path.isdir(git_dir) == False or os.path.islink(git_dir) == True:
print 'Not found .git in ' + dir
sys.exit(1)
def main():
parser = argparse.ArgumentParser(description='Add .gitkeep to empty directories.')
subparsers = parser.add_subparsers(title='commands', metavar='command')
parser_list = subparsers.add_parser('list', help='list candidates')
parser_list.set_defaults(func=list)
parser_list.add_argument('--dir', type=str, help='path to git directory', default=os.getcwd())
parser_keep = subparsers.add_parser('keep', help='')
parser_keep.set_defaults(func=keep)
parser_keep.add_argument('--dir', type=str, help='path to git directory', default=os.getcwd())
parser_keep.add_argument('--keeper', type=str, help='dummy file name. Default is ".gitkeep"', default='.gitkeep')
args = parser.parse_args()
args.dir = args.dir.rstrip('/')
check_git_dir(args.dir)
args.func(args)
if __name__ == "__main__":
main()
Pythons `` `argparse``` ist nützlich!
[2012-04-05 11:55] Ich habe es versehentlich in Abwesenheit von .git behalten, was katastrophal war, also habe ich nach .git gesucht.
Recommended Posts