I just merged the nfs41-gate with the snv_100 tagged onnv-gate. This caused me to bump the closedv tag to 2 in the nfs41-gate.
You can refresh your copies of our closed-bins at http://www.opensolaris.org/os/project/nfsv41/downloads/.
BTW: While the pushes are automatic, I'm still trying to get the notification to be automatic.
6751438 mirror mounted mountpoints panic when umounted, finally got through the code review process, the RTI process, etc. I wanted to get this into snv_101 because that is the candidate to become OpenSolaris 2008.11. I want a stable mirror mount experience out there for users.
The other bug fix I have in the works has passed stalled, which I'm really okay with at this point. This is the 6738223 Can not share a single IP address bug. Anyway, I've gotten two positive reviews and one reviewer asking questions. If I were tricky, I could try to submit an RTI, but the fact of the matter is that the third reviewer can still be satisfied.
Also, there is no way I want to integrate this into snv_101. While the fix is trivial, it can wait for snv_102. I.e., I don't see a business need to put it back right now.
Some of the key differences between the bugs and why one has to go in:
So I feel one is a strong must and the other is a nice to have. And I don't think 'nice to have' meets the entry criteria for snv_101.
I ran into another machine which got stuck on that 'hg style' issue I reported in Getting around a tool repository which is not updating and I got mad enough to start looking at it. We've still got path dependencies in BFU to stuff inside SWAN and I was hoping we could get away from it with the new tools.
I started trying to figure out where the Python script was that was being run. I wanted to find the hard-coded reference to /ws/onnv-tools/onbld/etc/hgstyle. Knowing that I had just seen a Flag Day on this, I looked in Flag day: new default output style for Mercurial. And the solution was staring right at me!
Mark had coded it correctly, no path hardcoding! I could simply change:
[ui] username=Mark J. Nelsonstyle=/ws/onnv-tools/onbld/etc/hgstyle
to be:
[ui] username=Mark J. Nelsonstyle=/opt/onbld/etc/hgstyle
Sweet, great to have my faith restored and an effective solution.
But now I need to really fix the automount maps in the lab, we keep on tripping over this issue with a stale repository and we have a working one we should be using.
So Justin suggested:
try
template = """"%(started)s - %(ended)s: %(title)s for
%(company)s
%(jobdesc)s"""
print template % row
I'm trying to capture what he put in, the line wrap on the first 'template' line is probably the comment system.
So I entered this, making a reformat tweak, as:
template = """"%(started)s - %(ended)s: %(title)s for %(company)s %(description)s"""
if __name__ == "__main__":
for row in main(sys.argv[1],'!'):
print template % row
And I got the wrong output. The error is of course mine:
> ./justin.py r4.txt "1/05 - present: Staff Engineer Software for Sun Microsystems NFS development "6/01 - 12/05: File System Engineer for Network Appliance WAFL and NFS development "4/01 - 6/01: Manager for Network Appliance Manager of Engineering Internal Test "10/99 - 4/01: System Administrator for Network Appliance Perl hacker and filer administrator
I shouldn't have joined the lines in the 'template' format. But why the extra '"'?
Ahh, Justin had one in his entry.
Okay, so the new changes work, here is the full program:
#!/usr/bin/env python
import csv, sys
def main(dfile,format,delimiter=","):
db=open(dfile,'U')
start=0
for line in db:
if line.startswith(format):
db.seek(start+len(format))
return csv.DictReader(db,delimiter=delimiter)
else:
start+=len(line)+(len(db.newlines)==2) #windows hackery
raise "There is no %s header line in %s" % (format,dfile)
template = """%(started)s - %(ended)s: %(title)s for %(company)s
%(description)s"""
if __name__ == "__main__":
for row in main(sys.argv[1],'!'):
print template % row
And now I need to go figure out what Justin did...
Okay, the '%(name)s' has to be a formatting option. Can I duplicate it?
>>> for row in csv.DictReader(file("r4.txt")):
... print "%(title)s" % row
...
Staff Engineer Software
File System Engineer
Manager
System Administrator
And now I do understand it - 3.6.2 String Formatting Operations:
A conversion specifier contains two or more characters and has the following components, which must occur in this order: 1. The "%" character, which marks the start of the specifier. 2. Mapping key (optional), consisting of a parenthesised sequence of characters (for example, (somename)).
So, this code would be good for printing, but not necessarily for doing more complex manipulations.
By the way, I'm having fun figuring this stuff out...