frostming / legit Goto Github PK
View Code? Open in Web Editor NEWGit for Humans, Inspired by GitHub for Mac™.
Home Page: https://frostming.github.io/legit
License: BSD 3-Clause "New" or "Revised" License
Git for Humans, Inspired by GitHub for Mac™.
Home Page: https://frostming.github.io/legit
License: BSD 3-Clause "New" or "Revised" License
64-bit Arch Linux
python2-legit-git 20120326
python2-smmap 0.8.2
gitpython 0.3.2_rc1
Here's the output:
% legit switch athome
Saving local changes.
Saved working directory and index state On master: Legit: stashing before switching branches.
HEAD is now at ec68be8 Made changes to gendesk
Switching to athome.
Restoring local changes.
Traceback (most recent call last):
File "/usr/bin/legit", line 9, in
load_entry_point('legit==0.1.1', 'console_scripts', 'legit')()
File "/usr/lib/python2.7/site-packages/legit/cli.py", line 45, in main
cmd_map.get(arg).call(args)
File "/usr/lib/python2.7/site-packages/legit/cli.py", line 125, in cmd_switch
status_log(unstash_it, 'Restoring local changes.')
File "/usr/lib/python2.7/site-packages/legit/cli.py", line 80, in status_log
log = func(_args, *_kwargs)
File "/usr/lib/python2.7/site-packages/legit/scm.py", line 99, in unstash_it
'stash', 'pop', 'stash@{{0}}'.format(stash_index)])
File "/usr/lib/python2.7/site-packages/git/cmd.py", line 377, in execute
raise GitCommandError(command, status, stderr_value)
git.exc.GitCommandError: 'git stash pop stash@{0}' returned exit status 1:
i think legit could grow some sort of submodule support -- perhaps legit sync
would update all submodules? or maybe a dedicated command to work with submodules.
For example, to support github in the windows console, you need to use git/cmd/git.cmd - so directly calling popen('git') won't work.
GitPython supports this by looking for a GIT_PYTHON_GIT_EXECUTABLE environment variable (gitpython-developers/GitPython#26)
git = os.environ.get("GIT_PYTHON_GIT_EXECUTABLE", 'git')
perhaps Legit can do the same?
I've got my repo pointed to two remotes -- "origin" which we maintain internally, and "github", which is automatically mirrored from origin. We never push directly to "github".
Whenever I try to run a legit command from this repo, I see the following error:
Traceback (most recent call last):
File "/usr/bin/legit", line 9, in <module>
load_entry_point('legit==0.1.1', 'console_scripts', 'legit')()
File "/usr/lib/python2.7/site-packages/legit/cli.py", line 45, in main
cmd_map.get(arg).__call__(args)
File "/usr/lib/python2.7/site-packages/legit/cli.py", line 337, in cmd_branches
display_available_branches()
File "/usr/lib/python2.7/site-packages/legit/cli.py", line 438, in display_available_branches
branches = get_branches()
File "/usr/lib/python2.7/site-packages/legit/scm.py", line 233, in get_branches
for b in repo.remotes[0].refs:
File "/usr/lib/python2.7/site-packages/git/remote.py", line 435, in refs
assert out_refs, "Remote %s did not have any references" % self.name
AssertionError: Remote github did not have any references
If I comment out the "github" repo in the config, it works fine. I tried a git fetch github
but that didn't help.
Compatible with GfM.
No real idea as to why but the trace is here:
Pushing commits to the server.
Restoring local changes.
Traceback (most recent call last):
File "/usr/local/bin/legit", line 9, in
load_entry_point('legit==0.1.1', 'console_scripts', 'legit')()
File "/Library/Python/2.7/site-packages/legit/cli.py", line 45, in main
cmd_map.get(arg).call(args)
File "/Library/Python/2.7/site-packages/legit/cli.py", line 162, in cmd_sync
status_log(unstash_it, 'Restoring local changes.', sync=True)
File "/Library/Python/2.7/site-packages/legit/cli.py", line 80, in status_log
log = func(_args, *_kwargs)
File "/Library/Python/2.7/site-packages/legit/scm.py", line 99, in unstash_it
'stash', 'pop', 'stash@{{0}}'.format(stash_index)])
File "/Library/Python/2.7/site-packages/git/cmd.py", line 377, in execute
raise GitCommandError(command, status, stderr_value)
git.exc.GitCommandError: 'git stash pop stash@{0}' returned exit status 1:
i love the idea of making git more human and codifying a set of good practice conventions into a tool like this (and like the mac GUI), but i think i must be missing something basic about the implied workflow, or i am trying to apply it to a use-case that is outside of the domain it is trying to address (or i'm a dope).
the way that i usually set up to contribute to someone else's open source project is to:
then i create feature branches on my local machine and push them to my github fork and submit pull requests to the owner while also being able to fetch/pull from the owner's repo to keep up with their changes.
if i understand it right, legit is only intended and optimized for working with a single remote (i.e. my fork on github). so in the scenario above of contributing to someone else's project, how do i keep up with their changes?
i know that i can add an additional remote and just do what i always do outside of legit, but is this something that legit is not intended to address, or am i missing something?
any explanation or pointer to where this is already discussed would be very welcome.
When there is no remote set, which was already pushed to, legit crashes on branch actions (branches
, switch
).
~/Desktop/test (master) $ legit branches
Traceback (most recent call last):
File "c:\Python27\Scripts\legit-script.py", line 8, in <module>
load_entry_point('legit==0.0.5', 'console_scripts', 'legit')()
File "c:\Python27\lib\site-packages\legit\cli.py", line 32, in main
cmd_map.get(arg).__call__(args)
File "c:\Python27\lib\site-packages\legit\cli.py", line 237, in cmd_branches
display_available_branches()
File "c:\Python27\lib\site-packages\legit\cli.py", line 248, in display_available_branches
branches = get_branches()
File "c:\Python27\lib\site-packages\legit\scm.py", line 158, in get_branches
for b in repo.remotes[0].refs:
File "c:\Python27\lib\site-packages\git\util.py", line 566, in __getitem__
return list.__getitem__(self,index)
IndexError: list index out of range
~/Desktop/test (master) $ git remote add origin ../test-bare
~/Desktop/test (master) $ legit branches
<crashes>
~/Desktop/test (master) $ git push origin master
~/Desktop/test (master) $ legit branches
2nd-branch (unpublished)
* master
"If a stash pop merge fails, Legit stops. I'd like to add checking for a merge failure, and undo the command with friendly error reporting."
what do you mean with "Legit stops"?
running install_lib
creating /Library/Python/2.7/site-packages/legit
error: could not create '/Library/Python/2.7/site-packages/legit': Permission denied
Hi, I had to allow read permission on /usr/local/lib/python2.6/dist-packages/legit-0.1.1.egg-info/requires.txt after installing with sudo legit install
When I use switch, it stashes but doesn't pop the stash after checkout the branch.
This is kind of new behavior, perhaps since I've installed legit with homebrew?
legit v0.1.0
So I created a package build for Arch Linux. It's available in the AUR
You're free to link this in the README or somewhere else.
Btw: is legit fully python3-compatible? If so, I will update the package and it's dependencies for arch linux, too.
Explain usage.
It would be nice to improve the git command live API by replacing
git add . -vA
with
legit addremove
similiar to the way Mercurial does it.
I have 3 published branches, but decided to try running 'git sprout' anyways, with no additional arguments. It didn't go well.
$ git sprout
Saving local changes.
Saved working directory and index state On master: Legit: stashing before switching branches.
HEAD is now at 1bd9b18 leaving work
Branching master to None.
Traceback (most recent call last):
File "/home/parsons1/.virtualenvs/dev/bin/legit", line 8, in <module>
load_entry_point('legit==0.1.1', 'console_scripts', 'legit')()
File "/home/parsons1/.virtualenvs/dev/lib/python2.7/site-packages/legit/cli.py", line 45, in main
cmd_map.get(arg).__call__(args)
File "/home/parsons1/.virtualenvs/dev/lib/python2.7/site-packages/legit/cli.py", line 208, in cmd_sprout
off_branch, new_branch)
File "/home/parsons1/.virtualenvs/dev/lib/python2.7/site-packages/legit/cli.py", line 80, in status_log
log = func(*args, **kwargs)
File "/home/parsons1/.virtualenvs/dev/lib/python2.7/site-packages/legit/scm.py", line 167, in sprout_branch
return repo.git.execute([git, 'checkout', off_branch, '-b', branch])
File "/home/parsons1/.virtualenvs/dev/lib/python2.7/site-packages/git/cmd.py", line 335, in execute
**subprocess_kwargs
File "/usr/local/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/local/lib/python2.7/subprocess.py", line 1228, in _execute_child
raise child_exception
TypeError: execv() arg 2 must contain only strings
Tried legit for the first time (installed from the Arch Linux package here: https://aur.archlinux.org/packages.php?ID=50308).
Here's what I got:
legit switch master
Saving local changes.
Saved working directory and index state On athome: Legit: stashing before switching branches.
HEAD is now at cb9a61b Changed git aliases and added gitst
Switching to master.
Your branch is behind 'origin/master' by 27 commits, and can be fast-forwarded.
Exception TypeError: "'NoneType' object is not callable" in <bound method WindowCursor.del of <smmap.mman.WindowCursor object at 0x1ea85d0>> ignored
Exception TypeError: "'NoneType' object is not callable" in <bound method WindowCursor.del of <smmap.mman.WindowCursor object at 0x1b3b1b0>> ignored
Exception TypeError: "'NoneType' object is not callable" in <bound method WindowCursor.del of <smmap.mman.WindowCursor object at 0x1ea8578>> ignored
git sync
should allow (or be able to default to) rebasing.
Even though the documentation says the that there is an "Auto-merge/rebase" the code seems to point out that it can only merge. Am I missing something?
Is there a way to easily disable control characters (?) from legit output. By default (Python 2.7.2 x64, Windows 7) legit output looks like this:
>legit
←[31mlegit←[39m. ←[30mA Kenneth Reitz ProjectΓäó←[39m
Usage: ←[34mlegit <command>←[39m
Commands: ←[32mbranches←[39m, ←[32mgraft←[39m, ←[32mharvest←[39m, ←[32mhelp←[39m,
←[32minstall←[39m, ←[32mpublish←[39m, ←[32msettings←[39m,
←[32msprout←[39m, ←[32mswitch←[39m, ←[32msync←[39m, and ←[32munpublish←[39m.
Thanks!
Half implemented.
When trying to install legit using pip, I get an error and the installation fails. Error is pasted below. I've never used pip before, so I'm just leaving it here in hopes that it's useful.
Thanks!
/usr/bin/pip run on Mon Apr 2 16:44:27 2012
Downloading/unpacking legit
Running setup.py egg_info for package legit
/home/gmeans/build/legit/setup.py:19: Warning: 'with' will become a reserved keyword in Python 2.6
Traceback (most recent call last):
File "<string>", line 14, in <module>
File "/home/gmeans/build/legit/setup.py", line 19
with open('reqs.txt') as f:
^
SyntaxError: invalid syntax
Complete output from command python setup.py egg_info:
/home/gmeans/build/legit/setup.py:19: Warning: 'with' will become a reserved keyword in Python 2.6
Traceback (most recent call last):
File "", line 14, in
File "/home/gmeans/build/legit/setup.py", line 19
with open('reqs.txt') as f:
^
SyntaxError: invalid syntax
Command python setup.py egg_info failed with error code 1 in /home/gmeans/build/legit
Exception information:
Traceback (most recent call last):
File "/usr/lib/python2.5/site-packages/pip-1.1.post1-py2.5.egg/pip/basecommand.py", line 104, in main
status = self.run(options, args)
File "/usr/lib/python2.5/site-packages/pip-1.1.post1-py2.5.egg/pip/commands/install.py", line 245, in run
requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
File "/usr/lib/python2.5/site-packages/pip-1.1.post1-py2.5.egg/pip/req.py", line 1015, in prepare_files
req_to_install.run_egg_info()
File "/usr/lib/python2.5/site-packages/pip-1.1.post1-py2.5.egg/pip/req.py", line 226, in run_egg_info
command_desc='python setup.py egg_info')
File "/usr/lib/python2.5/site-packages/pip-1.1.post1-py2.5.egg/pip/init.py", line 256, in call_subprocess
% (command_desc, proc.returncode, cwd))
InstallationError: Command python setup.py egg_info failed with error code 1 in /home/gmeans/build/legit
Got this traceback while running 'legit sync' -- rather disconcerting... :-/
jknutson@jensck-mac-2~/Documents/git_repos/c42_crashplan_android/crashplan_android$ legit sync Pulling commits from the server. Traceback (most recent call last): File "/usr/local/bin/legit", line 8, in <module> load_entry_point('legit==0.0.9', 'console_scripts', 'legit')() File "/Library/Python/2.6/site-packages/legit/cli.py", line 34, in main cmd_map.get(arg).__call__(args) File "/Library/Python/2.6/site-packages/legit/cli.py", line 131, in cmd_sync status_log(smart_pull, 'Pulling commits from the server.') File "/Library/Python/2.6/site-packages/legit/cli.py", line 58, in status_log log = func(*args, **kwargs) File "/Library/Python/2.6/site-packages/legit/scm.py", line 83, in smart_pull return repo.git.execute(['git', verb, '{0}/{1}'.format(remote, branch)]) File "/Library/Python/2.6/site-packages/git/cmd.py", line 377, in execute raise GitCommandError(command, status, stderr_value) git.exc.GitCommandError: 'git merge origin/develop' returned exit status 1: Exception TypeError: "'NoneType' object is not callable" in <bound method WindowCursor.__del__ of <smmap.mman.WindowCursor object at 0x1017c9f18>> ignored Exception TypeError: "'NoneType' object is not callable" in <bound method WindowCursor.__del__ of <smmap.mman.WindowCursor object at 0x1007c4890>> ignored
show exactly what's going on.
I tried to "git sprout test" and expected a test branch to be created from the current branch, but instead it complained there was no branch called test.
when providing only one argument, sprout should branch from the current branch into a new branch with the name passed in the argument
Specifically:
When using switch, the stash is only preserved for the first branch and not for every branch individually. Thus uncommitted changes from another branch overwrite the first branch's stash.
Example in pseudo shell:
<branch1>$ echo "foobar" > foobar.txt
<branch1>$ cat foobar.txt
foo
foobar
<branch1>$ legit switch branch2
Stashing and switching
<branch2>$ cat foobar.txt
foo
<branch2>$ echo "barfoo" > foobar.txt
<branch2>$ legit switch branch1
Stashing and switching
<branch1>$ cat foobar.txt
foo
barfoo
It would be nice to autocomplete commands and branch names by pressing tab.
$ git graft <branch>
Merge unpublished branch into current branch, then remove it.
This blows up, apparently because I am failing to say which branch I want to graft my new branch (yay) into:
mybox:myrepo kentbrew$ git graft yay
Switching to yay.
Grafting yay into yay.
Traceback (most recent call last):
File "/usr/local/bin/legit", line 8, in <module>
load_entry_point('legit==0.1.1', 'console_scripts', 'legit')()
File "/Library/Python/2.7/site-packages/legit/cli.py", line 45, in main
cmd_map.get(arg).call(args)
File "/Library/Python/2.7/site-packages/legit/cli.py", line 247, in cmd_graft
colored.yellow(branch), colored.yellow(into_branch)), branch)
File "/Library/Python/2.7/site-packages/legit/cli.py", line 80, in status_log
log = func(_args, *_kwargs)
File "/Library/Python/2.7/site-packages/legit/scm.py", line 185, in graft_branch
out = repo.git.execute([git, 'branch', '-D', branch])
File "/Library/Python/2.7/site-packages/git/cmd.py", line 377, in execute
raise GitCommandError(command, status, stderr_value)
git.exc.GitCommandError: 'git branch -D yay' returned exit status 1: error: Cannot delete the branch 'yay' which you are currently on.
This works like a champ:
mybox:myrepo kentbrew$ git graft yay master
Switching to master.
Grafting yay into master.
Merge made by the 'recursive' strategy.
woo.txt | 2 ++
yay.txt | 2 ++
2 files changed, 4 insertions(+)
create mode 100644 woo.txt
create mode 100644 yay.txt
Deleted branch yay (was 373d97a).
git-legit.org
~ $ pip install legit
Downloading/unpacking legit
Downloading legit-0.1.1.tar.gz
Running setup.py egg_info for package legit
Downloading/unpacking clint>=0.2.4 (from legit)
Downloading clint-0.3.1.tar.gz
Running setup.py egg_info for package clint
Downloading/unpacking gitpython>=0.3.0 (from legit)
Downloading GitPython-0.3.2.RC1.tar.gz (313Kb): 313Kb downloaded
Running setup.py egg_info for package gitpython
warning: no files found matching 'README'
Downloading/unpacking gitdb>=0.5.1 (from gitpython>=0.3.0->legit)
Downloading gitdb-0.5.4.tar.gz (50Kb): 50Kb downloaded
Running setup.py egg_info for package gitdb
Downloading/unpacking async>=0.6.1 (from gitdb>=0.5.1->gitpython>=0.3.0->legit)
Downloading async-0.6.1.tar.gz
Running setup.py egg_info for package async
Downloading/unpacking smmap>=0.8.0 (from gitdb>=0.5.1->gitpython>=0.3.0->legit)
Downloading smmap-0.8.2.tar.gz
Running setup.py egg_info for package smmap
Installing collected packages: legit, clint, gitpython, gitdb, async, smmap
Running setup.py install for legit
Installing legit script to /usr/bin
Running setup.py install for clint
warning: install_data: setup script did not provide a directory for 'README.rst' -- installing right in '/usr'
warning: install_data: setup script did not provide a directory for 'HISTORY.rst' -- installing right in '/usr'
Complete output from command /usr/bin/python2.6 -c "import setuptools;file='/home/Admin/build/clint/setup.py';exec(compile(open(file).read().replace('\r\n', '\n'), file, 'exec'))" install --single-version-externally-managed --record /tmp/pip-k2VYT5-record/install-record.txt:
running install
running build
running build_py
creating build
creating build/lib
creating build/lib/clint
copying clint/arguments.py -> build/lib/clint
copying clint/eng.py -> build/lib/clint
copying clint/pipes.py -> build/lib/clint
copying clint/resources.py -> build/lib/clint
copying clint/utils.py -> build/lib/clint
copying clint/init.py -> build/lib/clint
creating build/lib/clint/textui
copying clint/textui/colored.py -> build/lib/clint/textui
copying clint/textui/cols.py -> build/lib/clint/textui
copying clint/textui/core.py -> build/lib/clint/textui
copying clint/textui/formatters.py -> build/lib/clint/textui
copying clint/textui/progress.py -> build/lib/clint/textui
copying clint/textui/init.py -> build/lib/clint/textui
creating build/lib/clint/packages
copying clint/packages/appdirs.py -> build/lib/clint/packages
copying clint/packages/ordereddict.py -> build/lib/clint/packages
copying clint/packages/init.py -> build/lib/clint/packages
creating build/lib/clint/packages/colorama
copying clint/packages/colorama/ansi.py -> build/lib/clint/packages/colorama
copying clint/packages/colorama/ansitowin32.py -> build/lib/clint/packages/colorama
copying clint/packages/colorama/initialise.py -> build/lib/clint/packages/colorama
copying clint/packages/colorama/win32.py -> build/lib/clint/packages/colorama
copying clint/packages/colorama/winterm.py -> build/lib/clint/packages/colorama
copying clint/packages/colorama/init.py -> build/lib/clint/packages/colorama
running install_lib
creating /usr/lib/python2.6/site-packages/clint
copying build/lib/clint/arguments.py -> /usr/lib/python2.6/site-packages/clint
copying build/lib/clint/eng.py -> /usr/lib/python2.6/site-packages/clint
creating /usr/lib/python2.6/site-packages/clint/packages
copying build/lib/clint/packages/appdirs.py -> /usr/lib/python2.6/site-packages/clint/packages
creating /usr/lib/python2.6/site-packages/clint/packages/colorama
copying build/lib/clint/packages/colorama/ansi.py -> /usr/lib/python2.6/site-packages/clint/packages/colorama
copying build/lib/clint/packages/colorama/ansitowin32.py -> /usr/lib/python2.6/site-packages/clint/packages/colorama
copying build/lib/clint/packages/colorama/initialise.py -> /usr/lib/python2.6/site-packages/clint/packages/colorama
copying build/lib/clint/packages/colorama/win32.py -> /usr/lib/python2.6/site-packages/clint/packages/colorama
copying build/lib/clint/packages/colorama/winterm.py -> /usr/lib/python2.6/site-packages/clint/packages/colorama
copying build/lib/clint/packages/colorama/init.py -> /usr/lib/python2.6/site-packages/clint/packages/colorama
copying build/lib/clint/packages/ordereddict.py -> /usr/lib/python2.6/site-packages/clint/packages
copying build/lib/clint/packages/init.py -> /usr/lib/python2.6/site-packages/clint/packages
copying build/lib/clint/pipes.py -> /usr/lib/python2.6/site-packages/clint
copying build/lib/clint/resources.py -> /usr/lib/python2.6/site-packages/clint
creating /usr/lib/python2.6/site-packages/clint/textui
copying build/lib/clint/textui/colored.py -> /usr/lib/python2.6/site-packages/clint/textui
copying build/lib/clint/textui/cols.py -> /usr/lib/python2.6/site-packages/clint/textui
copying build/lib/clint/textui/core.py -> /usr/lib/python2.6/site-packages/clint/textui
copying build/lib/clint/textui/formatters.py -> /usr/lib/python2.6/site-packages/clint/textui
copying build/lib/clint/textui/progress.py -> /usr/lib/python2.6/site-packages/clint/textui
copying build/lib/clint/textui/init.py -> /usr/lib/python2.6/site-packages/clint/textui
copying build/lib/clint/utils.py -> /usr/lib/python2.6/site-packages/clint
copying build/lib/clint/init.py -> /usr/lib/python2.6/site-packages/clint
byte-compiling /usr/lib/python2.6/site-packages/clint/arguments.py to arguments.pyc
byte-compiling /usr/lib/python2.6/site-packages/clint/eng.py to eng.pyc
byte-compiling /usr/lib/python2.6/site-packages/clint/packages/appdirs.py to appdirs.pyc
byte-compiling /usr/lib/python2.6/site-packages/clint/packages/colorama/ansi.py to ansi.pyc
byte-compiling /usr/lib/python2.6/site-packages/clint/packages/colorama/ansitowin32.py to ansitowin32.pyc
byte-compiling /usr/lib/python2.6/site-packages/clint/packages/colorama/initialise.py to initialise.pyc
byte-compiling /usr/lib/python2.6/site-packages/clint/packages/colorama/win32.py to win32.pyc
byte-compiling /usr/lib/python2.6/site-packages/clint/packages/colorama/winterm.py to winterm.pyc
byte-compiling /usr/lib/python2.6/site-packages/clint/packages/colorama/init.py to init.pyc
byte-compiling /usr/lib/python2.6/site-packages/clint/packages/ordereddict.py to ordereddict.pyc
byte-compiling /usr/lib/python2.6/site-packages/clint/packages/init.py to init.pyc
byte-compiling /usr/lib/python2.6/site-packages/clint/pipes.py to pipes.pyc
byte-compiling /usr/lib/python2.6/site-packages/clint/resources.py to resources.pyc
byte-compiling /usr/lib/python2.6/site-packages/clint/textui/colored.py to colored.pyc
byte-compiling /usr/lib/python2.6/site-packages/clint/textui/cols.py to cols.pyc
byte-compiling /usr/lib/python2.6/site-packages/clint/textui/core.py to core.pyc
byte-compiling /usr/lib/python2.6/site-packages/clint/textui/formatters.py to formatters.pyc
byte-compiling /usr/lib/python2.6/site-packages/clint/textui/progress.py to progress.pyc
byte-compiling /usr/lib/python2.6/site-packages/clint/textui/init.py to init.pyc
byte-compiling /usr/lib/python2.6/site-packages/clint/utils.py to utils.pyc
byte-compiling /usr/lib/python2.6/site-packages/clint/init.py to init.pyc
running install_data
warning: install_data: setup script did not provide a directory for 'README.rst' -- installing right in '/usr'
copying README.rst -> /usr
warning: install_data: setup script did not provide a directory for 'HISTORY.rst' -- installing right in '/usr'
copying HISTORY.rst -> /usr
running install_egg_info
running egg_info
creating clint.egg-info
writing clint.egg-info/PKG-INFO
writing top-level names to clint.egg-info/top_level.txt
writing dependency_links to clint.egg-info/dependency_links.txt
writing manifest file 'clint.egg-info/SOURCES.txt'
warning: manifest_maker: standard file '-c' not found
reading manifest file 'clint.egg-info/SOURCES.txt'
writing manifest file 'clint.egg-info/SOURCES.txt'
Copying clint.egg-info to /usr/lib/python2.6/site-packages/clint-0.3.1-py2.6.egg-info
running install_scripts
writing list of installed files to '/tmp/pip-k2VYT5-record/install-record.txt'
Command /usr/bin/python2.6 -c "import setuptools;file='/home/Admin/build/clint/setup.py';exec(compile(open(file).read().replace('\r\n', '\n'), file, 'exec'))" install --single-version-externally-managed --record /tmp/pip-k2VYT5-record/install-record.txt failed with error code -6 in /home/Admin/build/clint
Storing complete log in /home/Admin/.pip/pip.log
Having a quick browse through your code, I saw that the git repo path is hardcoded as .git
. (The default is .git
but it can be set to anything else via either --git_dir
or $GIT_DIR
.) This could bite users who have different git repo paths.
(Aside: since you're using Python, why don't you use pygit2?)
Anyway, I don't want to pick fault here—I just had quick a browse through this very interesting-sounding project someone retweeted on my Twitter feed and saw a few issues that would bother me.
I have two branches
When switching between branches the stashes for these two got all mixed up.
First, thank you for legit. I like it already.
In regular Git, if you are on branch "foo" and you do "git checkout master" ... You can switch back to the previous branch with "-": "git checkout -" with bring you back to branch "foo".
This can be filed under "nice to have" :).
Thanks again.
I had a few branches that were deleted from Github by someone else remotely. When I run 'git branches' they still show up as (published) by legit.
Trying to call git unpublished gives this error.
Traceback (most recent call last):
File "<string>", line 7, in <module>
File "legit_r/build/pyi.darwin/legit_r/outPYZ1.pyz/legit.cli", line 45, in main
File "legit_r/build/pyi.darwin/legit_r/outPYZ1.pyz/legit.cli", line 289, in cmd_unpublish
File "legit_r/build/pyi.darwin/legit_r/outPYZ1.pyz/legit.cli", line 80, in status_log
File "legit_r/build/pyi.darwin/legit_r/outPYZ1.pyz/legit.scm", line 196, in unpublish_branch
File "legit_r/build/pyi.darwin/legit_r/outPYZ1.pyz/git.cmd", line 377, in execute
git.exc.GitCommandError: 'git push origin :Story27438231-iphone-order-summary-currency-relayout' returned exit status 1: error: unable to push to unqualified destination: Story27438231-iphone-order-summary-currency-relayout
The destination refspec neither matches an existing ref on the remote nor
begins with refs/, and we are unable to guess a prefix based on the source ref.
error: failed to push some refs to '[email protected]:hoteltonight/ht-ios.git'
Calling git branch -d [BranchName]
deletes the local branch, but it will still show as an existing published branch to Legit.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.