glyph | Hiya. We've got a buildbot which is using bzr, while our main repository is still SVN. The buildbot wants to build svn revisions. svn:revno almost does what we want, except it demands a level of precision we can't necessarily provide: | 01:10 |
---|---|---|
glyph | To wit, when we have a revision number that is in a branch, but we try to check it out on trunk, we don't get the "highest without going over" behavior that "svn checkout" would produce. | 01:10 |
glyph | Is there a way to get that behavior without lots of hacking of 'bzr log' and its output? | 01:11 |
lifeless | possibly | 01:14 |
lifeless | uhm | 01:14 |
lifeless | before:svn:xxx | 01:14 |
lifeless | or after:svn:xxx | 01:14 |
lifeless | or you could write a plugin for svn-approx:xxxx | 01:15 |
lifeless | which would do whatever you need | 01:15 |
lifeless | revision resolving plugins are pretty simple | 01:15 |
glyph | lifeless: interesting | 01:16 |
glyph | lifeless: that doesn't seem to work though. | 01:17 |
glyph | bzr: ERROR: Unsupported protocol for url "after:svn:34810" | 01:17 |
lifeless | after might be science fiction | 01:20 |
lifeless | I suspect you need a small resolver | 01:20 |
lifeless | bzr help revisionspec will give you the current ones | 01:21 |
lifeless | you can look at e.g. bzr-svn to see how svn: is implemented and registered | 01:21 |
glyph | lifeless: OK. Probably don't need it, but that's good to keep in mind. I did write a bunch of shortcut plugins for my own personal use :) | 01:23 |
glyph | no revision plugins though. | 01:23 |
spiv | revspec plugins are pretty straightforward. | 01:28 |
lifeless | glyph: I suspect a plugin is what you need, that or a patch to the svn revspec to be fuzzy | 01:28 |
tomprince | bzr: ERROR: Requested revision: u'svn:35497' does not exist in branch: BzrBranch7('http://svn.twistedmatrix.com/bzr/Twisted/trunk/') | 04:11 |
tomprince | ^--- does this indicate an out-of-date version bzr/bzr-svn? | 04:12 |
=== _thumper_ is now known as thumper | ||
spiv | tomprince: is the bzr-svn plugin loaded? (does it appear in 'bzr plugins' ?)| | 04:28 |
spiv | Or possibly it means that bzr mirror of the svn trunk is out of date? | 04:28 |
tomprince | I don't have access to the host. It could be that the bzr-svn plugin is loaded. | 04:44 |
tomprince | http://buildbot.twistedmatrix.com/builders/rhel6-32bit-py2.6/builds/984/steps/bzr/logs/stdio | 04:45 |
tomprince | spiv: ^--- is the output I get. | 04:45 |
tomprince | I'm trying to diagnose the problem remotely, so I can provide instructions to the person who has access to the machine. | 04:47 |
spiv | I guess ideally the 'bzr' step of that buildslave config would capture the .bzr.log and put it somewhere visible. | 04:57 |
spiv | Or perhaps run bzr with -Derror or something | 04:57 |
spiv | Well, 'bzr log -r-1 -v --long --show-ids http://svn.twistedmatrix.com/bzr/Twisted/trunk/' shows its currently at svn's r35499 | 05:01 |
spiv | So that error does suggest that there's something wrong with bzr-svn on that slave. | 05:02 |
mgz | morning | 08:07 |
jelmer | pom | 08:51 |
jelmer | tomprince: hi | 08:55 |
jelmer | tomprince: did that revision touch that particular branch? | 08:55 |
jml | *awesome* | 11:10 |
jml | $ bzr di | 11:10 |
jml | === modified file 'sourcedeps.conf' | 11:10 |
jml | bzr: ERROR: Could not understand response from smart server: ['x\x9c\xa5\x92\xcb\x0e\x820\x10E\xd7\xf2\x15\xee\r\xad\xa0\x10\x1f\xf1cJ[\xa1\x81>\x9c\xb6$\xb2\xf0\xdb\x85\x80Q0\x01\x13\x17\x93Lf\xe6\xde\x93\xde\x14a!\x8d\x06\x17Z'] | 11:10 |
mgz | hm... new in the last few days I take it? | 11:10 |
jml | mgz: new today for me | 11:11 |
jml | lightweight checkout | 11:11 |
mgz | we upgraded launchpad to bzr 2.5.1 which has some new fancy for doing some operations over the smart server that weren't before | 11:11 |
mgz | so, please file a bug with as much info as possible. | 11:11 |
jml | ok. | 11:12 |
mgz | obvious work around is have a local trunk branch that you branch from, so diffs from lwc use that | 11:13 |
jml | yeah, I'm doing that right now | 11:13 |
mgz | thanks jml. | 11:13 |
jml | huh, apparently a lock has been taken | 11:13 |
mgz | ...you might need to manuall break it | 11:13 |
mgz | also worth putting in the bug report | 11:13 |
mgz | ah... launchpad might be unhappy right now? | 11:14 |
jml | mgz: https://bugs.launchpad.net/bzr/+bug/1046265 | 11:18 |
ubot5 | Ubuntu bug 1046265 in Bazaar ""Could not understand response from smart server" when diffing lightweight checkout of LP branch" [Undecided,New] | 11:18 |
mgz | is it repoducable, I neglected to ask? | 11:18 |
jml | mgz: yes, although I haven't tried from a fresh light-weight checkout, only one that already existed. | 11:19 |
jam | mgz, jelmer: any success with the python-defaults stuff? | 11:45 |
jam | jml: what were you using a lightweight checkout for that you were running diff? (the only specific common one I know of is the download-cache, but diff is pretty useless for tarballs) | 11:47 |
jml | jam: a branch that contains only a config-manager configuration file, sourcedeps.conf | 11:48 |
jelmer | jml: can you file a bug about this issue? | 11:48 |
jml | jelmer: is https://bugs.launchpad.net/bzr/+bug/1046265 somehow insufficient? | 11:49 |
ubot5 | Ubuntu bug 1046265 in Bazaar ""Could not understand response from smart server" when diffing lightweight checkout of LP branch" [High,Confirmed] | 11:49 |
jam | jelmer: he did file #1046265 was there another one? | 11:49 |
jelmer | jml: worked on landing use-bzr-policy-open earlier, and am going to upload a new python-defaults soon | 11:49 |
jelmer | jml: No, that's great - thanks | 11:49 |
jml | jelmer: np. | 11:49 |
jelmer | I didn't see that | 11:49 |
jam | jelmer: use-bzr-policy-open? | 11:50 |
jam | an lp branch | 11:50 |
jelmer | jam: yep, to get launchpad to use the bzr code for safely opening branches | 11:50 |
jml | see also $ bzr ci | 12:08 |
jml | Committing to: bzr+ssh://bazaar.launchpad.net/~canonical-ca-hackers/ca-configs/txpkgme-configmanager/ | 12:08 |
jml | modified sourcedeps.conf | 12:08 |
jml | bzr: ERROR: bzrlib.errors.TooManyConcurrentRequests: The medium 'SmartSSHClientMedium(bzr+ssh://jml@bazaar.launchpad.net/)' has reached its concurrent request limit. Be sure to finish_writing and finish_reading on the currently open request. | 12:08 |
jml | Traceback (most recent call last): | 12:08 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/commands.py", line 930, in exception_to_return_code | 12:08 |
jml | return the_callable(*args, **kwargs) | 12:08 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/commands.py", line 1141, in run_bzr | 12:08 |
jml | ret = run(*run_argv) | 12:08 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/commands.py", line 673, in run_argv_aliases | 12:08 |
jml | return self.run(**all_cmd_args) | 12:08 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/commands.py", line 697, in run | 12:09 |
jml | return self._operation.run_simple(*args, **kwargs) | 12:09 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/cleanup.py", line 136, in run_simple | 12:09 |
jml | self.cleanups, self.func, *args, **kwargs) | 12:09 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/cleanup.py", line 166, in _do_with_cleanups | 12:09 |
jml | result = func(*args, **kwargs) | 12:09 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/builtins.py", line 3688, in run | 12:09 |
jml | lossy=lossy) | 12:09 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/decorators.py", line 218, in write_locked | 12:09 |
jml | result = unbound(self, *args, **kwargs) | 12:09 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/workingtree_4.py", line 218, in commit | 12:09 |
jml | result = WorkingTree.commit(self, message, revprops, *args, **kwargs) | 12:09 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/decorators.py", line 218, in write_locked | 12:09 |
jml | result = unbound(self, *args, **kwargs) | 12:09 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/mutabletree.py", line 211, in commit | 12:09 |
jml | *args, **kwargs) | 12:09 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/commit.py", line 290, in commit | 12:09 |
jml | lossy=lossy) | 12:09 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/cleanup.py", line 132, in run | 12:09 |
jml | self.cleanups, self.func, self, *args, **kwargs) | 12:09 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/cleanup.py", line 166, in _do_with_cleanups | 12:09 |
jml | result = func(*args, **kwargs) | 12:09 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/commit.py", line 452, in _commit | 12:09 |
jml | self.builder.abort() | 12:09 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/vf_repository.py", line 217, in abort | 12:09 |
jml | self.repository.abort_write_group() | 12:09 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/remote.py", line 1212, in abort_write_group | 12:09 |
jml | suppress_errors=suppress_errors) | 12:09 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/repository.py", line 282, in abort_write_group | 12:10 |
jml | self._abort_write_group() | 12:10 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/repofmt/pack_repo.py", line 1708, in _abort_write_group | 12:10 |
jml | self._pack_collection._abort_write_group() | 12:10 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/repofmt/pack_repo.py", line 1565, in _abort_write_group | 12:10 |
jml | operation.run_simple() | 12:10 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/cleanup.py", line 136, in run_simple | 12:10 |
jml | self.cleanups, self.func, *args, **kwargs) | 12:10 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/cleanup.py", line 166, in _do_with_cleanups | 12:10 |
jml | result = func(*args, **kwargs) | 12:10 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/repofmt/pack_repo.py", line 436, in abort | 12:10 |
jml | self.upload_transport.delete(self.random_name) | 12:10 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/transport/remote.py", line 313, in delete | 12:10 |
jml | resp = self._call2('delete', self._remote_path(relpath)) | 12:10 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/transport/remote.py", line 181, in _call2 | 12:10 |
jml | return self._client.call(method, *args) | 12:10 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/smart/client.py", line 59, in call | 12:10 |
jml | result, protocol = self.call_expecting_body(method, *args) | 12:10 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/smart/client.py", line 72, in call_expecting_body | 12:10 |
jml | method, args, expect_response_body=True) | 12:10 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/smart/client.py", line 55, in _call_and_read_response | 12:10 |
jml | return request.call_and_read_response() | 12:10 |
jam | jml: pastebin is your friend :) | 12:10 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/smart/client.py", line 157, in call_and_read_response | 12:10 |
jml | return self._call(protocol_version) | 12:10 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/smart/client.py", line 189, in _call | 12:10 |
jml | response_handler = self._send(protocol_version) | 12:10 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/smart/client.py", line 265, in _send | 12:10 |
jml | encoder, response_handler = self._construct_protocol(protocol_version) | 12:10 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/smart/client.py", line 241, in _construct_protocol | 12:11 |
jml | request = self.client._medium.get_request() | 12:11 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/smart/medium.py", line 884, in get_request | 12:11 |
jml | return SmartClientStreamMediumRequest(self) | 12:11 |
jam | also, at least with a trivial branch here, I don't see the failure when creating a new lightweight checkout of a single-file single-commit branch and modifying it and committing. | 12:11 |
jml | File "/usr/lib/python2.7/dist-packages/bzrlib/smart/medium.py", line 1167, in __init__ | 12:11 |
jml | raise errors.TooManyConcurrentRequests(self._medium) | 12:11 |
jml | TooManyConcurrentRequests: The medium 'SmartSSHClientMedium(bzr+ssh://jml@bazaar.launchpad.net/)' has reached its concurrent request limit. Be sure to finish_writing and finish_reading on the currently open request. | 12:11 |
jml | bzr 2.6.0dev3 on python 2.7.3 (Linux-3.5.0-10-generic-x86_64-with- | 12:11 |
jml | Ubuntu-12.10-quantal) | 12:11 |
jml | arguments: ['/usr/bin/bzr', 'ci'] | 12:11 |
jml | plugins: bash_completion[2.6.0dev3], branchdashboard[unknown], | 12:11 |
jml | bzrtools[2.5.0], changelog_merge[2.6.0dev3], damage[unknown], | 12:11 |
jml | difftodo[unknown], grep[0.5.0dev], launchpad[2.6.0dev3], | 12:11 |
jml | netrc_credential_store[2.6.0dev3], news_merge[2.6.0dev3], | 12:11 |
jam | jml: so if this is a public thing, can you tar up your local checkout, and put it somewhere for us to test? | 12:11 |
jml | po_merge[2.6.0dev3], pqm[1.4.0dev], stats[0.2.0dev], svn[1.2.3dev], | 12:11 |
jml | weave_fmt[2.6.0dev3] | 12:11 |
jml | encoding: 'utf-8', fsenc: 'UTF-8', lang: 'en_GB.UTF-8' | 12:11 |
jml | *** Bazaar has encountered an internal error. This probably indicates a | 12:11 |
jml | bug in Bazaar. You can help us fix it by filing a bug report at | 12:11 |
jml | https://bugs.launchpad.net/bzr/+filebug | 12:11 |
jml | including this traceback and a description of the problem. | 12:11 |
jml | oops | 12:11 |
jml | sorry. | 12:11 |
jml | you know that thing where hitting Ctrl-C doesn't always copy because something in Ubuntu is slower than I am? that. | 12:11 |
jml | I had meant https://bugs.launchpad.net/bzr/+bug/1046284 | 12:11 |
ubot5 | Ubuntu bug 1046284 in Bazaar "TooManyConcurrentRequests when committing to lightweight checkout" [Undecided,New] | 12:11 |
jml | no it's not | 12:11 |
jml | jam: this is a different branch (I think) | 12:12 |
jml | jam: chinstrap:~jml/txpkgme-configmanager.tar.gz | 12:12 |
jam | jml: and this is using Q with the packaged bzr? or bzr.dev? or ? | 12:13 |
jml | jam: packaged Q. (should I have included more information in the bug report?) | 12:14 |
jam | jml: I think it has enough info there, but sometimes it is easier to just ask | 12:15 |
jml | :) | 12:15 |
jam | jml: bzr status says: bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/~canonical-ca-hackers/ca-configs/txpkgme-configmanager/". | 12:16 |
jml | jam: oh. well. it is a branch. | 12:16 |
jam | jml: https://code.launchpad.net/~canonical-ca-hackers/ca-configs | 12:16 |
jam | are you sure it isn't private? | 12:17 |
jml | jam: oh yeah, it's private. | 12:17 |
jam | so... I can't see it then :) | 12:17 |
jml | jam: but not for any good reason that I know of | 12:17 |
jam | jml: you are welcome to make it public, or add me for analysis purposes. | 12:17 |
jml | jam: ah, right. you still work for Canonical, right? :P | 12:17 |
jam | (and then kick me out later so I don't get bug spam) | 12:17 |
jam | jml: I got paid last month, so I'm pretty sure I do | 12:17 |
jml | jam: I've subscribed you to txpkgme-configmanager. Let me know if you need more access. | 12:21 |
jam | jml: I can see it, and I can confirm that 'bzr diff' gives me a failure | 12:22 |
jml | cool. | 12:25 |
jam | jml: ok, I think I've figured out the bug | 12:42 |
jam | I'm not sure why the ordering is this way | 12:42 |
jam | but essentially, the _iter_files_bytes code yields a 'call this function to get the content of the file' | 12:43 |
jam | however, the outer code is never calling that function. | 12:43 |
jam | which means the bytes of the file are still in the stream | 12:43 |
jam | so the next iteration goes through and says "is there another record here" and gets the file content instead of the tail of the stream. | 12:43 |
jam | jml, jelmer: I see why now, should be a simple-ish fix | 12:49 |
jelmer | jam: Thanks for debugging that | 12:50 |
jelmer | jam: Are you submitting a fix? | 12:50 |
jam | jelmer: yeah, the specific issue is that WT4 is doing list(iter_files_bytes())[0] | 12:50 |
jam | however, that consumes the iterator | 12:50 |
jam | *before* it consumes the content. | 12:50 |
jelmer | ah | 12:50 |
jam | so we just have to turn it into a for loop, etc. | 12:51 |
jam | and then think about if we have a test hole. | 12:51 |
jam | iter_files_bytes wasn't being used according to its spec, so one implementation did it differently (remoterepo vs local repo) | 12:52 |
jam | but it wasn't detected because local repo caches the contents and returns a trivial function | 12:52 |
jam | jelmer: interestingly, it looks like i'm the one to blame. | 12:54 |
jam | back in rev 4204 | 12:54 |
mgz | well, that's nice. | 12:55 |
jelmer | jam: to be fair, we never had that behaviour until recently | 12:55 |
jam | jelmer,mgz: yeah it worked because we didn't actually implement iter_files_bytes as an RPC | 12:55 |
jam | I wrote get_file_text back in bzr-1.14.. wow. | 12:56 |
mgz | but iters that happen to always be listiter then usage breaking when that changes kind of thing isn't uncommon | 12:56 |
jam | mgz: yeah, the issue is that you have to consume the callable returned as you iterate | 12:56 |
jam | which I think has bit us once before, but it is pretty uncommon. | 12:56 |
mgz | ...I think those words would make sense if I'd put them together in the right order | 12:56 |
jam | mgz: well, I know the code and the problem, so it made enough sense to me :) | 13:00 |
jam | jelmer, mgz: it has been a while since I dug into the hard bits. How would you set up a test for a lightweight checkout of a remote repository? | 13:09 |
jelmer | jam: it depends a bit; for what you're hitting now I guess a blackbox test might be most appropriate? | 13:10 |
jam | jelmer: I'd like to do a per-wt test sort of thing. | 13:10 |
jelmer | jam: There are no tests verifying wt against a specific remote branch I think | 13:11 |
jam | jelmer: yeah, which I think is part of the testing hole I mentioned earlier. | 13:11 |
jelmer | jam: perhaps just add a test in bzrlib/tests/per_workingtree/ that sets up some remote branch and gets the wt to use that, if they are compatible? | 13:11 |
mgz | jam: probably subclass TestCaseWithTransport then parametrise against classes in bt.test_server | 13:12 |
mgz | ReadonlySmartTCPServer_for_testing should do, can then operate on branch locally the check it out, and make some tree changes, and diff | 13:14 |
jam | mgz: well, I only need to call 'wt.get_file_text()' with a backing of a remote repo, so 'dif' isn't necessary | 13:15 |
jam | (it is also why commit fails, etc.) | 13:15 |
mgz | doesn't seem like per_workingtree has any remote tests | 13:15 |
jam | well, I'm guessing, I didn't try to commit to a branch that isn't mine :) | 13:15 |
jam | right | 13:15 |
idnar | so there's `bzr deleted` and `bzr renames`; is there anything like `bzr modified`? | 13:32 |
idnar | I'm looking for something nicer than bzr status -S | horrible-shell-hacking-here | 13:33 |
mgz | idnar: what would be calling that? | 13:34 |
idnar | I want to open all modified (and added, for that matter) files in my editor; so something like gvim -p $(bzr blahblah) would be my usage | 13:35 |
idnar | it's not too important, I was just wondering if I missed something easy | 13:35 |
mgz | hm, so writing shell is probably no worse than using the python bzrlib api or a plugin | 13:46 |
fullermd | ls is more the interface intended for that. | 13:47 |
mgz | odd, ls seems to be showing me ignored files by default | 13:49 |
mgz | and lots of files that are not in fact modified... | 13:50 |
fullermd | Hm, I thought ls had --modified and --deleted and such. But the help doesn't list them. | 13:50 |
mgz | idnar: so, that's probably what you want, you might just need to submit some patches to fix it first :) | 13:51 |
micahg | bzr: ERROR: zlib.error: Error -3 while decompressing: incorrect header check trying to branch a local git repo to bzr | 14:42 |
hariom | What are pros and cons of creating bzr repo in non root user space | 15:12 |
mgz | hariom: I don't know exactly what you mean, but I can't think of any reason you'd want to do it. | 15:14 |
mgz | micahg: is that a bug report or an observation? | 15:15 |
micahg | mgz: it's an observation, I'm happy to file a bug report if appropriate :) | 15:15 |
micahg | google was not forthcoming with a matching bug report | 15:15 |
mgz | without traceback context (see .bzr.log) it's hard to suggest anything | 15:16 |
micahg | mgz: http://paste.ubuntu.com/1187398/ | 15:17 |
mgz | generally errors from zlib mean a data file has been corrupted, but branching from git (which doesn't use the same mechanisms) might mean it's a dulwich bug or something | 15:18 |
* micahg wishes he knew the equivalent of bzr check for git | 15:21 | |
mgz | right, was going to suggest that, but also don't know it | 15:22 |
mgz | could set BZR_PDB=1, repeat the operation, step up the stack trace a bit and see if the packfile looks sane | 15:24 |
mgz | micahg: either way, a bug report against dulwich would not hurt | 15:35 |
gmarkall | would the bzr check equivalent be git fsck, maybe with --full and/or --strict? | 15:37 |
micahg | gmarkall: ooh, thanks | 15:39 |
=== abentley is now known as abentley-lunch | ||
micahg | mgz: consistency check finished, checkout still failed, I guess a dulwich bug it is then | 16:31 |
=== abentley-lunch is now known as abentley | ||
mgz | oh, pants | 18:24 |
mgz | how do I cancel a pqm run... | 18:24 |
lifeless | sudo make me a sandwhich | 18:27 |
mgz | I fear that won't work. | 18:27 |
lifeless | sandwich then | 18:27 |
mgz | and it's past the merge step to renaming the branch from under it is no good. | 18:27 |
mgz | ...I don't have rights to uncommit from bzr.dev so can't fixup afterwards either | 18:28 |
lifeless | land the reverse patch. | 18:29 |
lifeless | uncommit on public branches is evil anyhow. | 18:29 |
mgz | how much will webops hate me if I ask them to kill the process on whatever machine bzr's pqm runs on these days? | 18:29 |
lifeless | well, thats what I meant by sudo :P | 18:29 |
mgz | the merge will work, it's just targetted at the wrong branch, so will confuse the history | 18:29 |
lifeless | its a fairly routine request - is it mid test run ? | 18:29 |
mgz | yup, | 18:30 |
mgz | thanks lifeless. I really must let launchpad load the diff before sending these routine things to land. | 18:32 |
=== deryck is now known as deryck[afk] | ||
chinoto | http://doc.bazaar.canonical.com/beta/en/admin-guide/simple-setups.html#using-a-restricted-ssh-account-to-host-multiple-users-and-repositories | 18:57 |
chinoto | so my coworker decided to use that link to restrict access to our dev server so... "outsource workers"? could work on a project with us, but I can't even do a simple "bzr whoami" | 18:58 |
chinoto | shnarf | 19:09 |
mgz | chinoto: why would you want to run `bzr whoami` on the dev server? | 19:11 |
mgz | and what exactly is the problem you're having? | 19:12 |
chinoto | well I wanted to run "bzr update", but it didn't work so I decided to try a simpler command and saw whoami | 19:16 |
chinoto | we have lines like this in '.ssh/authorized_keys' | 19:20 |
chinoto | command="bzr serve --inet --allow-writes --directory=/home/bzr/repo",no-agent-forwarding,no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding ssh-rsa AAA...= XYZ | 19:20 |
chinoto | and I tried to do 'ssh bzr@dev.ffusa.net "bzr whoami"', but it just blinked at me... | 19:20 |
maxb | chinoto: you misunderstand how that ssh authorized keys stuff works - it means you cannot run commands on the server, so of course ssh host command does not work | 19:29 |
chinoto | perhaps it isn't misunderstanding, but not understanding in the first place :3 | 19:33 |
chinoto | so I'm guessing this means I can only interact with the server through local bzr commands (eg 'bzr log --line :parent'). in order to update the server's working tree I would have to ssh in as a different user and do 'sudo -u bzr bzr update'? | 19:42 |
lifeless | if you have a working tree | 19:43 |
lifeless | servers generally don't | 19:43 |
chinoto | well we do | 19:43 |
lifeless | you may want bzr-upload for publishing a website, for instance. | 19:43 |
=== deryck[afk] is now known as deryck | ||
=== mwhudson_ is now known as mwhudson |
Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!