Re: svn commit: r1502964 - in /subversion/branches/fsfs-improvements/subversion/libsvn_fs_fs: fs_fs.c fs_fs.h lock.c pack.c util.c util.h

2013-08-04 Thread Stefan Fuhrmann
a nonexistent formal parameter. That function is completely misnamed by now. r1510344 fixed that. Thanks again! -- Stefan^2.

Re: svn commit: r1509342 - in /subversion/branches/log-addressing/subversion/libsvn_fs_fs: fs.h fs_fs.c util.c util.h

2013-08-02 Thread Stefan Fuhrmann
for the review! -- Stefan^2.

Re: svn commit: r1509342 - in /subversion/branches/log-addressing/subversion/libsvn_fs_fs: fs.h fs_fs.c util.c util.h

2013-08-02 Thread Stefan Fuhrmann
On Fri, Aug 2, 2013 at 5:16 PM, Stefan Fuhrmann stefan.fuhrm...@wandisco.com wrote: On Fri, Aug 2, 2013 at 5:11 AM, Daniel Shahaf danie...@elego.de wrote: stef...@apache.org wrote on Thu, Aug 01, 2013 at 17:36:42 -: Author: stefan2 Date: Thu Aug 1 17:36:42 2013 New Revision

Re: svn commit: r1508170 - in /subversion/trunk: build/ac-macros/svn-macros.m4 configure.ac subversion/include/svn_hash.h

2013-07-29 Thread Stefan Fuhrmann
things have been broken here: * the ac macro (fixed in r1508221) * the definition / #include order (detected as of r1508222, fixed in r1508225) Now, I see the optimization work on my machine again. -- Stefan^2.

Re: svn commit: r1498169 - in /subversion/branches/fsfs-format7/subversion/libsvn_fs_x: fs_x.c hotcopy.c pack.c recovery.c revprops.c revprops.h

2013-07-02 Thread Stefan Fuhrmann
into the linker options --- and seeing how libsvn_fs_x.so code managed to call into libsvn_fs_fs.so code --- would still be an interesting exercise. Yes, that would probably be insightful. -- Stefan^2.

Re: svn commit: r1358725 - /subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c

2013-06-21 Thread Stefan Fuhrmann
)) with no feedback during it. Implemented in r1495545. -- Stefan^2.

Re: svn commit: r1418963 - /subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c

2013-06-10 Thread Stefan Fuhrmann
a degenerated '*/ return SVN_NO_ERROR; Scalpel. What is that comment referring to? Good catch. This is a fragment of a comment that referred to degenerated (O(N) instead of O(log N)) delta chains. The if() section above that spot takes care of this case. Removed in r1491425. -- Stefan^2.

Re: svn commit: r1477540 - in /subversion/trunk: ./ subversion/libsvn_subr/cache-membuffer.c

2013-06-06 Thread Stefan Fuhrmann
Hi Joe, Thanks for the patch. Committed as r1490221. -- Stefan^2. On Tue, May 14, 2013 at 12:51 AM, Joe Swatosh joe.swat...@gmail.com wrote: Small (possible?) compatibility improvements: suggest APR_UINT64_C() instead of ull suffix in subversion\libsvn_subr\cache-membuffer.c. -- Joe

Re: svn commit: r1486044 -

2013-05-25 Thread Stefan Sperling
On Sat, May 25, 2013 at 10:22:35AM +0100, Philip Martin wrote: Bert Huijben b...@qqmail.nl writes: The diff command should never change the wc(no wclock, and no db/pristine changes), so I really hope the problem that corrupts is part of the merge on update, or we should check for another

Re: svn commit: r1483434 - /subversion/trunk/subversion/libsvn_subr/hash.c

2013-05-16 Thread Stefan Fuhrmann
and path names. For those, you might almost just pick the 5th last byte as your hash key (or something silly like that) and be fine. -- Stefan^2 On Thu, May 16, 2013 at 6:31 PM, Bert Huijben b...@qqmail.nl wrote: -Original Message- From: stef...@apache.org [mailto:stef...@apache.org

Re: svn commit: r1481594 - /subversion/trunk/subversion/libsvn_repos/log.c

2013-05-13 Thread Stefan Fuhrmann
won't be used anywhere else in this function or the caller. Also, there is a pool lifetime issue. -- Stefan^2. -- *Join one of our free daily demo sessions on* *Scaling Subversion for the Enterprise http://www.wandisco.com/training/webinars* * *

Re: svn commit: r1476623 - in /subversion/branches/fsfs-format7/subversion/libsvn_fs_fs: cached_data.c caching.c changes.c changes.h fs.h

2013-04-27 Thread Stefan Fuhrmann
). -- Stefan^2. -- *Join one of our free daily demo sessions on* *Scaling Subversion for the Enterprise http://www.wandisco.com/training/webinars* * *

Re: svn commit: r1465647 - /subversion/site/publish/docs/release-notes/1.8.html

2013-04-11 Thread Stefan Fuhrmann
for the review! -- Stefan^2. -- *Join one of our free daily demo sessions on* *Scaling Subversion for the Enterprise http://www.wandisco.com/training/webinars* * *

Re: svn commit: r1464763 [1/2] - in /subversion/trunk/subversion: include/svn_ra_svn.h libsvn_ra_svn/client.c libsvn_ra_svn/editorp.c libsvn_ra_svn/marshal.c svnserve/serve.c

2013-04-05 Thread Stefan Fuhrmann
people using the current API directly will have a hard time doing a global searchreplace followed by a recompile. My objection was solely on the grounds of compatibility rules. -- Stefan^2. *From:* Stefan Fuhrmann [mailto:stefan.fuhrm...@wandisco.com] *Sent:* vrijdag 5 april 2013 12:09

Re: svn commit: r1461865 - in /subversion/branches/fsfs-format7/subversion: include/private/svn_packed_data.h include/svn_error_codes.h libsvn_subr/packed_data.c

2013-03-31 Thread Stefan Fuhrmann
: Introduce a framework for space and time- efficient storage of binary data. For details, see the header file documentation. We almost never use the 'SVN__' namespace. Shouldn't these bits be 'svn_packed__*'? Done in r1462837. Thanks for the review! -- Stefan^2. -- *Join one of our free

Re: svn commit: r1424037 - in /subversion/trunk/subversion: include/svn_cmdline.h libsvn_subr/cmdline.c svn/cl.h svn/svn.c tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout tests/cmdline/upda

2012-12-19 Thread Stefan Sperling
On Wed, Dec 19, 2012 at 08:18:44PM +0100, Bert Huijben wrote: + /* If stdin is not a terminal and --force-interactive was not passed, + * set --non-interactive. */ + if (!opt_state.force_interactive) + opt_state.non_interactive = !svn_cmdline__stdin_isatty(); + This will

Re: svn commit: r1417642 - in /subversion/trunk/subversion: include/svn_config.h libsvn_ra_serf/ra_serf.h libsvn_ra_serf/serf.c libsvn_ra_serf/update.c libsvn_subr/config_file.c

2012-12-06 Thread Stefan Sperling
On Wed, Dec 05, 2012 at 08:54:05PM -, l...@apache.org wrote: Author: lgo Date: Wed Dec 5 20:54:03 2012 New Revision: 1417642 URL: http://svn.apache.org/viewvc?rev=1417642view=rev Log: Add a bulk-updates option to the global and per-server section in servers. This allows a user to

Re: svn commit: r1411296 - /subversion/branches/1.6.x/STATUS

2012-11-19 Thread Stefan Fuhrmann
+ +1: breser, danielsh, stefan2 If you move this paragraph below the Approved changes header, the backport.pl cron will merge it. Thanks for the hint! Done in r1411308. -- Stefan^2. -- Certified Supported Apache Subversion Downloads: * http://www.wandisco.com/subversion/download *

Re: svn commit: r1400423 - /subversion/trunk/subversion/libsvn_fs_fs/structure

2012-10-23 Thread Stefan Fuhrmann
to the documentation of svn__compress(). WDYT Applied in r1401302 with a minor addition. Thanks! -- Stefan^2. -- * Join us this October at Subversion Live 2012http://www.wandisco.com/svn-live-2012 for two days of best practice SVN training, networking, live demos, committer meet and greet, and more! Space

Re: svn commit: r1400483 - in /subversion/trunk: subversion/libsvn_ra/ subversion/libsvn_subr/ subversion/libsvn_wc/ subversion/svnrdump/ subversion/tests/libsvn_wc/ tools/client-side/svn-bench/ tools

2012-10-20 Thread Stefan Fuhrmann
. -- Stefan^2. -- * Join us this October at Subversion Live 2012http://www.wandisco.com/svn-live-2012 for two days of best practice SVN training, networking, live demos, committer meet and greet, and more! Space is limited, so get signed up todayhttp://www.wandisco.com/svn-live-2012 ! *

Re: svn commit: r1400482 - in /subversion/trunk/subversion: include/svn_ra_svn.h libsvn_ra_svn/client.c libsvn_ra_svn/marshal.c svnserve/serve.c

2012-10-20 Thread Stefan Fuhrmann
executed in parallel (might be remotely related to what you see) * a customer got an assert() when using 1.8. My guess is that there is a buffer overflow - I'm currently working on that. -- Stefan^2. -- * Join us this October at Subversion Live 2012http://www.wandisco.com/svn-live-2012 for two

Re: svn commit: r1398004 - /subversion/site/publish/docs/release-notes/1.8.html

2012-10-17 Thread Stefan Fuhrmann
to enable fine-tuning. Both items changed in r1399497. div class=h3 id=cmdline h3Command-line client improvements (emclient/em) a class=sectionlink href=#cmdline Looks good. Thanks for the review! -- Stefan^2. -- * Join us this October at Subversion Live 2012http

Re: svn commit: r1394346 - /subversion/trunk/subversion/libsvn_ra_svn/client.c

2012-10-05 Thread Stefan Fuhrmann
, followed by an explicit initialization of all elements. So, I had the option to either implicitly or explicitly set the NULL pointer and both seemed equally valid. I went with the explicit assignment. -- Stefan^2. -- * Join us this October at Subversion Live 2012http://www.wandisco.com/svn-live

Re: svn commit: r1382304 - /subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c

2012-09-10 Thread Stefan Fuhrmann
with props deltification: Deltify against a props representation instead of some text rep. This was an efficiency issue (size of the resulting delta rep), not a correctness issue, yes? Exactly. And it makes the pack file structure easier accessible to human readers. -- Stefan^2

Re: svn commit: r1381817 - /subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c

2012-09-10 Thread Stefan Fuhrmann
). Under what circumstances is expanded_size unknown? For PLAIN representations, compressed and uncompressed size are equal. In that case, the second value may be given as 0 (for empty reps, both would be 0). -- Stefan^2. Modified: subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c

Re: svn commit: r1381808 - in /subversion/trunk/subversion/libsvn_fs_fs: fs_fs.c fs_fs.h

2012-09-10 Thread Stefan Fuhrmann
On Sat, Sep 8, 2012 at 7:41 PM, Daniel Shahaf d...@daniel.shahaf.namewrote: Stefan Fuhrmann wrote on Sat, Sep 08, 2012 at 01:32:54 +0200: On Fri, Sep 7, 2012 at 9:36 PM, Daniel Shahaf danie...@elego.de wrote: I think this fix is wrong. svn_fs_fs__read_noderev() should return

Re: svn commit: r1357313 - in /subversion/trunk/subversion/svn: cl.h notify.c update-cmd.c

2012-09-05 Thread Stefan Sperling
On Tue, Sep 04, 2012 at 03:01:22PM -0400, Paul Burba wrote: I just noticed that this causes a segfault when updating with the quiet option: [[[ C:\SVN\src-trunksvn up Updating '.': At revision 1380738. C:\SVN\src-trunksvn up -q This application has halted due to an unexpected error.

Re: svn commit: r1353748 - /subversion/trunk/subversion/tests/cmdline/svnadmin_tests.py

2012-06-26 Thread Stefan Sperling
failure due to passing the wrong number of arguments to a helper function. Thank for catching my mistake, Stefan. I should be more careful when splitting up a big ugly patch into readable commits. Thanks, Steve No problem!

Re: svn commit: r1337844 - /subversion/trunk/subversion/libsvn_wc/conflicts.c

2012-05-13 Thread Stefan Sperling
On Sun, May 13, 2012 at 01:50:01PM +0200, Bert Huijben wrote: -Original Message- From: s...@apache.org [mailto:s...@apache.org] Sent: zondag 13 mei 2012 13:07 To: commits@subversion.apache.org Subject: svn commit: r1337844 - /subversion/trunk/subversion/libsvn_wc/conflicts.c

Re: svn commit: r1330571 - /subversion/trunk/subversion/mod_dav_svn/lock.c

2012-04-26 Thread Stefan Sperling
On Thu, Apr 26, 2012 at 07:45:48AM +0300, Daniel Shahaf wrote: You need: else if (serr) /* do something */ That is there. It is just not visible in the context of the diff.

Re: svn commit: r1330571 - /subversion/trunk/subversion/mod_dav_svn/lock.c

2012-04-26 Thread Stefan Sperling
On Thu, Apr 26, 2012 at 07:44:21AM +0300, Daniel Shahaf wrote: s...@apache.org wrote on Wed, Apr 25, 2012 at 21:38:08 -: Author: stsp Date: Wed Apr 25 21:38:08 2012 New Revision: 1330571 - else if (serr serr-apr_err == SVN_ERR_REPOS_HOOK_FAILURE) + else if (serr (serr-apr_err

Re: svn commit: r1303987 - /subversion/trunk/tools/dist/dist.sh

2012-03-25 Thread Stefan Sperling
On Sat, Mar 24, 2012 at 07:18:41PM +0200, Daniel Shahaf wrote: s...@apache.org wrote on Thu, Mar 22, 2012 at 19:04:19 -: Author: stsp Date: Thu Mar 22 19:04:19 2012 New Revision: 1303987 URL: http://svn.apache.org/viewvc?rev=1303987view=rev Log: * tools/dist/dist.sh: Only clean

Re: svn commit: r1298764 - in /subversion/site/publish: index.html news.html

2012-03-09 Thread Stefan Sperling
On Fri, Mar 09, 2012 at 07:23:41AM -0600, Hyrum K Wright wrote: Did you use the 'write-news' target of release.py to generate this template? Yes I did. I thought that it would Do The Right Things, but apparently not... Well, it got most things right :)

Re: svn commit: r1241050 - /subversion/trunk/subversion/mod_dav_svn/mod_dav_svn.c

2012-03-06 Thread Stefan Sperling
On Tue, Mar 06, 2012 at 12:39:27PM +, Julian Foad wrote: Daniel Shahaf wrote: Daniel Shahaf wrote on Mon, Feb 06, 2012 at 18:20:28 +0200: Stefan Sperling wrote on Mon, Feb 06, 2012 at 17:12:32 +0100: On Mon, Feb 06, 2012 at 05:59:04PM +0200, Daniel Shahaf wrote: This still

Re: svn commit: r1293766 - /subversion/branches/1.7.x/STATUS

2012-02-27 Thread Stefan Sperling
On Mon, Feb 27, 2012 at 09:40:57AM +, Julian Foad wrote: stevek...@apache.org wrote on Sun, Feb 26, 2012 at 07:47:02 -: + * r1235831, r1236099 +  Tweak the parsing of the ssl-authority-files config option to make it +  easier for users to configure. +  Justification: + 

Re: svn commit: r1241050 - /subversion/trunk/subversion/mod_dav_svn/mod_dav_svn.c

2012-02-06 Thread Stefan Sperling
On Mon, Feb 06, 2012 at 05:59:04PM +0200, Daniel Shahaf wrote: This still strips whitespace around ='s in the value: SVNHooksEnv name = x = y will result in setenv(name, x=y, 1) whereas I believe it should result in setenv(name, x = y, 1) (and, to be honest, I'd be happy with

Re: svn commit: r1239966 - in /subversion/trunk/subversion/mod_dav_svn: dav_svn.h mod_dav_svn.c repos.c

2012-02-03 Thread Stefan Sperling
On Fri, Feb 03, 2012 at 11:07:39AM +0200, Daniel Shahaf wrote: s...@apache.org wrote on Fri, Feb 03, 2012 at 01:02:08 -: +static const char * +SVNHooksEnv_cmd(cmd_parms *cmd, void *config, const char *arg1) +{ + apr_array_header_t *var; + + var = svn_cstring_split(arg1, =, TRUE,

Re: svn commit: r1239553 - in /subversion/trunk/subversion: include/svn_client.h libsvn_client/deprecated.c libsvn_client/diff.c svn/cl.h svn/diff-cmd.c svn/log-cmd.c svn/main.c

2012-02-02 Thread Stefan Sperling
On Thu, Feb 02, 2012 at 07:13:46AM -0600, Hyrum K Wright wrote: Bikeshed: since the fact that we are using diff is implied by the subcommand, would it be reasonable to use a more generic option name, such as '--ignore-props' instead of '--no-diff-properties'. It is shorter firstly, and second

Re: svn commit: r1222521 - /subversion/trunk/subversion/libsvn_wc/wc_db.c

2011-12-23 Thread Stefan Sperling
On Fri, Dec 23, 2011 at 10:40:59AM +0400, Konstantin Kolinko wrote: 2011/12/23 Hyrum K Wright hyrum.wri...@wandisco.com: Yikes!  I think this wins the prize for longest function call. Perhaps a helper function or at least some temporary variables would be in order? I look into that, sure.

Re: svn commit: r1222522 - /subversion/branches/1.7.x/STATUS

2011-12-23 Thread Stefan Sperling
On Fri, Dec 23, 2011 at 01:48:18PM +0200, Daniel Shahaf wrote: s...@apache.org wrote on Fri, Dec 23, 2011 at 00:35:16 -: + An informative error message helps people more than an assert (which + in case of TSVN can mean crashing the Windows Explorer). I thought the

Re: svn commit: r1222522 - /subversion/branches/1.7.x/STATUS

2011-12-23 Thread Stefan Sperling
On Fri, Dec 23, 2011 at 02:26:40PM +0200, Daniel Shahaf wrote: On Fri, Dec 23, 2011, at 13:01, Stefan Sperling wrote: On Fri, Dec 23, 2011 at 01:48:18PM +0200, Daniel Shahaf wrote: s...@apache.org wrote on Fri, Dec 23, 2011 at 00:35:16 -: + An informative error message helps

Re: svn commit: r1222522 - /subversion/branches/1.7.x/STATUS

2011-12-23 Thread Stefan Sperling
On Fri, Dec 23, 2011 at 04:10:07PM +0200, Daniel Shahaf wrote: On Fri, Dec 23, 2011, at 14:50, Stefan Sperling wrote: On Fri, Dec 23, 2011 at 02:26:40PM +0200, Daniel Shahaf wrote: On Fri, Dec 23, 2011, at 13:01, Stefan Sperling wrote: On Fri, Dec 23, 2011 at 01:48:18PM +0200, Daniel

Re: svn commit: r1222521 - /subversion/trunk/subversion/libsvn_wc/wc_db.c

2011-12-23 Thread Stefan Sperling
On Fri, Dec 23, 2011 at 11:25:37AM +0100, Stefan Sperling wrote: On Fri, Dec 23, 2011 at 10:40:59AM +0400, Konstantin Kolinko wrote: I would say that URL and UUID should be enough. The repos_id is useful information for developers trying to help users with debugging the issue. The message

Re: svn commit: r1204035 - in /subversion/branches/moves-scan-log/subversion: include/svn_wc.h libsvn_client/update.c

2011-11-19 Thread Stefan Sperling
On Sat, Nov 19, 2011 at 08:48:47PM +0200, Daniel Shahaf wrote: s...@apache.org wrote on Sat, Nov 19, 2011 at 18:34:53 -: Author: stsp Date: Sat Nov 19 18:34:52 2011 New Revision: 1204035 URL: http://svn.apache.org/viewvc?rev=1204035view=rev Log: On the moves-scan-log branch,

Re: svn commit: r1203546 - /subversion/trunk/subversion/mod_dav_svn/mod_dav_svn.c

2011-11-18 Thread Stefan Sperling
On Fri, Nov 18, 2011 at 01:37:24PM +, Philip Martin wrote: phi...@apache.org writes: Author: philip Date: Fri Nov 18 09:09:56 2011 New Revision: 1203546 Also, a nested Location inside an SVNPath Location is ambiguous so prevent access and log the problem. + if

Re: svn commit: r1203546 - /subversion/trunk/subversion/mod_dav_svn/mod_dav_svn.c

2011-11-18 Thread Stefan Sperling
On Fri, Nov 18, 2011 at 02:52:44PM +0100, Stefan Sperling wrote: Suggestion (not tested); ap_log_error(APLOG_MARK, APLOG_WARNING, 0, NULL, mod_dav_svn: nested Location '%s' inside SVNPath Location '%s'; this hinders access to a file

Re: svn commit: r1203546 - /subversion/trunk/subversion/mod_dav_svn/mod_dav_svn.c

2011-11-18 Thread Stefan Sperling
On Fri, Nov 18, 2011 at 03:07:11PM +0100, Stefan Sperling wrote: On Fri, Nov 18, 2011 at 02:52:44PM +0100, Stefan Sperling wrote: Suggestion (not tested); ap_log_error(APLOG_MARK, APLOG_WARNING, 0, NULL, mod_dav_svn: nested Location '%s' inside

Re: svn commit: r1134032 - /subversion/trunk/subversion/svnserve/main.c

2011-06-09 Thread Stefan Sperling
On Thu, Jun 09, 2011 at 09:01:09PM +0200, Bert Huijben wrote: -Original Message- From: s...@apache.org [mailto:s...@apache.org] Sent: donderdag 9 juni 2011 20:40 To: commits@subversion.apache.org Subject: svn commit: r1134032 - /subversion/trunk/subversion/svnserve/main.c

Re: svn commit: r1131442 - /subversion/trunk/tools/client-side/svnmucc/svnmucc.c

2011-06-06 Thread Stefan Sperling
On Mon, Jun 06, 2011 at 12:09:50PM +0100, Julian Foad wrote: but I'm -0.9 on allowing more than one additional prefix: svn log -r rr123 svn log -crr123 etc. because no sensible use case including yours requires this. However, as it's been allowed for some time now and it's

Re: [PATCH] Re: svn commit: r1071809 - in /subversion/trunk: build/run_tests.py subversion/tests/cmdline/svntest/main.py win-tests.py

2011-06-06 Thread Stefan Sperling
On Mon, Feb 28, 2011 at 10:03:45AM +0530, Noorul Islam K M wrote: Pinging to get some attention to this thread. Hi Noorul, I can't evaluate this patch since I don't have a linux box. $ make check MILESTONE_FILTER=(1.7.*)|(---) MODE_FILTER=xfail

Re: svn commit: r1100738 - /subversion/trunk/subversion/libsvn_subr/cache-membuffer.c

2011-05-09 Thread Stefan Fuhrmann
) { Wrong indentation change. Fixed in r1101091. -- Stefan^2.

Re: svn commit: r1073325 - /subversion/trunk/contrib/client-side/svn_apply_autoprops.py

2011-02-22 Thread Stefan Sperling
On Tue, Feb 22, 2011 at 12:18:36PM -0500, C. Michael Pilato wrote: On 02/22/2011 08:51 AM, s...@apache.org wrote: Author: stsp Date: Tue Feb 22 13:51:16 2011 New Revision: 1073325 [...] In some situations users might want to use a different configuration file to configure a

Re: svn commit: r992050 - /subversion/trunk/subversion/tests/cmdline/merge_tests.py

2010-09-02 Thread Stefan Sperling
On Thu, Sep 02, 2010 at 03:33:13PM -0400, Paul Burba wrote: On Thu, Sep 2, 2010 at 3:18 PM, Bert Huijben b...@qqmail.nl wrote: $ python ActivePython 2.6.1.1 (ActiveState Software Inc.) based on Python 2.6.1 (r261:67515, Dec  5 2008, 13:58:38) [MSC v.1500 32 bit (Intel)] on win32 Type

Re: svn commit: r986510 - in /subversion/trunk/subversion: bindings/javahl/native/SVNClient.cpp include/svn_client.h libsvn_client/delete.c libsvn_client/deprecated.c libsvn_client/externals.c libsvn_

2010-08-19 Thread Stefan Küng
depth_as_sticky, s/depth_as_sticky/depth_is_sticky/g ? From what I learned, that's correct: it works *as* if the operation is sticky, but it still is a readonly operation. Stefan -- ___ oo // \\ De Chelonian Mobile (_,\/ \_/ \ TortoiseSVN \ \_/_\_/The coolest Interface to (Sub

<    1   2