Server IP : 127.0.0.2 / Your IP : 18.222.48.95 Web Server : Apache/2.4.18 (Ubuntu) System : User : www-data ( ) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : disk_free_space,disk_total_space,diskfreespace,dl,exec,fpaththru,getmyuid,getmypid,highlight_file,ignore_user_abord,leak,listen,link,opcache_get_configuration,opcache_get_status,passthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,php_uname,phpinfo,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix,_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_times,posix_ttyname,posix_uname,pclose,popen,proc_open,proc_close,proc_get_status,proc_nice,proc_terminate,shell_exec,source,show_source,system,virtual MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/doc/git/contrib/fast-import/ |
Upload File : |
#!/usr/bin/env python ## zip archive frontend for git-fast-import ## ## For example: ## ## mkdir project; cd project; git init ## python import-zips.py *.zip ## git log --stat import-zips from os import popen, path from sys import argv, exit, hexversion, stderr from time import mktime from zipfile import ZipFile if hexversion < 0x01060000: # The limiter is the zipfile module stderr.write("import-zips.py: requires Python 1.6.0 or later.\n") exit(1) if len(argv) < 2: print 'usage:', argv[0], '<zipfile>...' exit(1) branch_ref = 'refs/heads/import-zips' committer_name = 'Z Ip Creator' committer_email = 'zip@example.com' fast_import = popen('git fast-import --quiet', 'w') def printlines(list): for str in list: fast_import.write(str + "\n") for zipfile in argv[1:]: commit_time = 0 next_mark = 1 common_prefix = None mark = dict() zip = ZipFile(zipfile, 'r') for name in zip.namelist(): if name.endswith('/'): continue info = zip.getinfo(name) if commit_time < info.date_time: commit_time = info.date_time if common_prefix == None: common_prefix = name[:name.rfind('/') + 1] else: while not name.startswith(common_prefix): last_slash = common_prefix[:-1].rfind('/') + 1 common_prefix = common_prefix[:last_slash] mark[name] = ':' + str(next_mark) next_mark += 1 printlines(('blob', 'mark ' + mark[name], \ 'data ' + str(info.file_size))) fast_import.write(zip.read(name) + "\n") committer = committer_name + ' <' + committer_email + '> %d +0000' % \ mktime(commit_time + (0, 0, 0)) printlines(('commit ' + branch_ref, 'committer ' + committer, \ 'data <<EOM', 'Imported from ' + zipfile + '.', 'EOM', \ '', 'deleteall')) for name in mark.keys(): fast_import.write('M 100644 ' + mark[name] + ' ' + name[len(common_prefix):] + "\n") printlines(('', 'tag ' + path.basename(zipfile), \ 'from ' + branch_ref, 'tagger ' + committer, \ 'data <<EOM', 'Package ' + zipfile, 'EOM', '')) if fast_import.close(): exit(1)