Re: Fast multi-file diff
"kirillmueller" <[email protected]> Tue, 12 Dec 2006 09:50:27 -0000
| Newsgroups | gmane.comp.version-control.cvs.gui.devel |
|---|---|
| Message-ID | <[email protected]> |
--F4TLP1mZVOQkInDKxFS91RWG210zJDdsd8xeVh1
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Jerzy,
thanks for your feedback.
How about implementing a "flag field" that is actually a set of files
but is visualized as a field in the existing view rather than in a new
view? For filtered flagged files, the flag would be restored when the
filter is off. For the hierarchical view, if a directory contains a
flagged file no matter how deep, the directory would get "partially
flagged"; the user would know that there is at least one flagged file
in this directory and then switch to flat view or navigate down the
tree. IMO, this would make the flag field as powerful as the "basket"
approach, but without the effort of implementing a separate view.
(Actually, this "flag field" would be kind of a basket: it's the
implementation of a basket visualized by a flag field.)
We'll need to use an efficient data type that can do fast insert,
delete and lookup for flat and hierarchical view. Maybe a hierarchy of
std::map-s or the like.
Also, one would be able to remember the flagged files. In addition,
there might be a history that keeps the last x sets of flagged files.
(Again, like having multiple basket views.) I've mentioned the ability
of flagging files by hand.
As the flag state might be important to the user, I would make
flagging as a result of an update command etc. optional.
And of course, one could filter for the flag field. And there could
also be a command that selects all flagged files.
Once baskets are implemented, there would be a command like "Move
selected/flagged items to basket" which would finally close the gap
between baskets and flags.
Kind regards,
Kirill
--F4TLP1mZVOQkInDKxFS91RWG210zJDdsd8xeVh1
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
</head>
<!-- Network content -->
<body style="background-color: #ffffff;">
<!--~-|**|PrettyHtmlStartT|**|-~-->
<div id="ygrp-mlmsg" style="width:655px; position:relative;">
<div id="ygrp-msg" style="width: 490px; padding: 0 15px 0 0; float:left; z-index:1;">
<!--~-|**|PrettyHtmlEndT|**|-~-->
<div id="ygrp-text">
<p>Jerzy,<br>
<br>
thanks for your feedback.<br>
<br>
How about implementing a "flag field" that is actually a set of files<br>
but is visualized as a field in the existing view rather than in a new<br>
view? For filtered flagged files, the flag would be restored when the<br>
filter is off. For the hierarchical view, if a directory contains a<br>
flagged file no matter how deep, the directory would get "partially<br>
flagged"; the user would know that there is at least one flagged file<br>
in this directory and then switch to flat view or navigate down the<br>
tree. IMO, this would make the flag field as powerful as the "basket"<br>
approach, but without the effort of implementing a separate view.<br>
(Actually, this "flag field" would be kind of a basket: it's the<br>
implementation of a basket visualized by a flag field.)<br>
<br>
We'll need to use an efficient data type that can do fast insert,<br>
delete and lookup for flat and hierarchical view. Maybe a hierarchy of<br>
std::map-s or the like.<br>
<br>
Also, one would be able to remember the flagged files. In addition,<br>
there might be a history that keeps the last x sets of flagged files.<br>
(Again, like having multiple basket views.) I've mentioned the ability<br>
of flagging files by hand.<br>
<br>
As the flag state might be important to the user, I would make<br>
flagging as a result of an update command etc. optional.<br>
<br>
And of course, one could filter for the flag field. And there could<br>
also be a command that selects all flagged files.<br>
<br>
Once baskets are implemented, there would be a command like "Move<br>
selected/flagged items to basket" which would finally close the gap<br>
between baskets and flags.<br>
<br>
Kind regards,<br>
<br>
Kirill<br>
<br>
</p>
</div>
<!--~-|**|PrettyHtmlStart|**|-~-->
<span width="1" style="color: white;">__._,_.___</span>
<!-- Start the section with Message In topic -->
<div id="ygrp-actbar">
<span class="left">
<a href="http://groups.yahoo.com/group/cvsgui-dev/message/1464;_ylc=X3oDMTM0ZjA3cHV2BF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBG1zZ0lkAzE0NzQEc2VjA2Z0cgRzbGsDdnRwYwRzdGltZQMxMTY1OTE3MTE5BHRwY0lkAzE0NjQ-">
Messages in this topic </a> (<span class="bld">4</span>)
</span>
<a href="http://groups.yahoo.com/group/cvsgui-dev/post;_ylc=X3oDMTJwbGRmc3BwBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBG1zZ0lkAzE0NzQEc2VjA2Z0cgRzbGsDcnBseQRzdGltZQMxMTY1OTE3MTE5?act=reply&messageNum=1474">
<span class="bld">
Reply </span> (via web post)
</a> |
<a href="http://groups.yahoo.com/group/cvsgui-dev/post;_ylc=X3oDMTJlOW9vN3ZqBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTE2NTkxNzExOQ--" class="bld">
Start a new topic </a>
</div>
<!------- Start Nav Bar ------>
<!-- |**|begin egp html banner|**| -->
<div id="ygrp-vitnav">
<a href="http://groups.yahoo.com/group/cvsgui-dev/messages;_ylc=X3oDMTJldTN2ZjhoBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA21zZ3MEc3RpbWUDMTE2NTkxNzExOQ--">Messages</a>
| <a href="http://groups.yahoo.com/group/cvsgui-dev/files;_ylc=X3oDMTJmajJra2NmBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA2ZpbGVzBHN0aW1lAzExNjU5MTcxMTk-">Files</a>
| <a href="http://groups.yahoo.com/group/cvsgui-dev/photos;_ylc=X3oDMTJlMDMxODc4BF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA3Bob3QEc3RpbWUDMTE2NTkxNzExOQ--">Photos</a>
| <a href="http://groups.yahoo.com/group/cvsgui-dev/links;_ylc=X3oDMTJmbDI0N25zBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA2xpbmtzBHN0aW1lAzExNjU5MTcxMTk-">Links</a>
| <a href="http://groups.yahoo.com/group/cvsgui-dev/database;_ylc=X3oDMTJjM29mcGdjBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA2RiBHN0aW1lAzExNjU5MTcxMTk-">Database</a>
| <a href="http://groups.yahoo.com/group/cvsgui-dev/polls;_ylc=X3oDMTJmM21qcmw1BF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA3BvbGxzBHN0aW1lAzExNjU5MTcxMTk-">Polls</a>
| <a href="http://groups.yahoo.com/group/cvsgui-dev/members;_ylc=X3oDMTJlZDU4NzVlBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA21icnMEc3RpbWUDMTE2NTkxNzExOQ--">Members</a>
| <a href="http://groups.yahoo.com/group/cvsgui-dev/calendar;_ylc=X3oDMTJkbW90NjNpBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA2NhbARzdGltZQMxMTY1OTE3MTE5">Calendar</a>
</div>
<!-- |**|end egp html banner|**| -->
<!-- Do not have place to put it yet -->
<div id="ygrp-grft">
</div>
<!-- yahoo logo -->
<!-- |**|begin egp html banner|**| -->
<div id="ygrp-ft">
<a href="http://groups.yahoo.com/;_ylc=X3oDMTJkMWM3bWVzBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA2dmcARzdGltZQMxMTY1OTE3MTE5">
<img src="http://us.i1.yimg.com/us.yimg.com/i/yg/img/logo/ma_grp_160.gif" height="15" width="106" border="0" alt="Yahoo! Groups"></a> <br>
<a href="http://groups.yahoo.com/group/cvsgui-dev/join;_ylc=X3oDMTJmcmY3OG8xBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA3N0bmdzBHN0aW1lAzExNjU5MTcxMTk-">Change settings via the Web</a> (Yahoo! ID required) <br>
Change settings via email: <a href="mailto:[email protected]?subject=Email Delivery: Digest">Switch delivery to Daily Digest</a> | <a href = "mailto:[email protected]?subject=Change Delivery Format: Traditional">Switch format to Traditional</a> <br>
<a href="http://groups.yahoo.com/group/cvsgui-dev;_ylc=X3oDMTJkbGEyNW9uBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA2hwZgRzdGltZQMxMTY1OTE3MTE5">
Visit Your Group
</a> |
<a href="http://docs.yahoo.com/info/terms/">
Yahoo! Groups Terms of Use </a> |
<a href="mailto:[email protected]?subject=">
Unsubscribe </a>
</div> <!-- |**|end egp html banner|**| -->
</div> <!-- ygrp-msg -->
<!-- Sponsor -->
<!-- |**|begin egp html banner|**| -->
<div id="ygrp-sponsor" style="width:140px;float: left; clear: none; margin-left: 5px; background:white; margin-bottom:25px ;position:absolute; top:0; right: 0;">
<!-- Network content -->
<!-- Start vitality -->
<div id="ygrp-vital">
<a href="http://groups.yahoo.com/group/cvsgui-dev;_ylc=X3oDMTJlODMxdXRiBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTE2NTkxNzExOQ--">
Visit Your Group </a>
</div>
<div id="hd">SPONSORED LINKS</div>
<div id="ov">
<ul>
<li><a href="http://groups.yahoo.com/gads;_ylc=X3oDMTJjY3RjZ2Y1BF9TAzk3MzU5NzE0BF9wAzEEZ3JwSWQDMjQ5MzI0NQRncnBzcElkAzE3MDUwMDcxODEEc2VjA3NsbW9kBHN0aW1lAzExNjU5MTcxMTk-?t=ms&k=Software+development+services&w1=Software+development+services&w2=Software+development&w3=Development+software&w4=Software+development+company&w5=Custom+software+development&c=5&s=154&g=2&.sig=7x2qo6dMYy1p5AU1pt1tiQ">Software development services</a></li>
<li><a href="http://groups.yahoo.com/gads;_ylc=X3oDMTJjNzVoaTEzBF9TAzk3MzU5NzE0BF9wAzIEZ3JwSWQDMjQ5MzI0NQRncnBzcElkAzE3MDUwMDcxODEEc2VjA3NsbW9kBHN0aW1lAzExNjU5MTcxMTk-?t=ms&k=Software+development&w1=Software+development+services&w2=Software+development&w3=Development+software&w4=Software+development+company&w5=Custom+software+development&c=5&s=154&g=2&.sig=BN1lrlsQSEiIXBpRBgFwvg">Software development</a></li>
<li><a href="http://groups.yahoo.com/gads;_ylc=X3oDMTJjYXZwNmRhBF9TAzk3MzU5NzE0BF9wAzMEZ3JwSWQDMjQ5MzI0NQRncnBzcElkAzE3MDUwMDcxODEEc2VjA3NsbW9kBHN0aW1lAzExNjU5MTcxMTk-?t=ms&k=Development+software&w1=Software+development+services&w2=Software+development&w3=Development+software&w4=Software+development+company&w5=Custom+software+development&c=5&s=154&g=2&.sig=tCpQXu3D1f1U1uy5lsC3_g">Development software</a></li>
<li><a href="http://groups.yahoo.com/gads;_ylc=X3oDMTJjNTJycG50BF9TAzk3MzU5NzE0BF9wAzQEZ3JwSWQDMjQ5MzI0NQRncnBzcElkAzE3MDUwMDcxODEEc2VjA3NsbW9kBHN0aW1lAzExNjU5MTcxMTk-?t=ms&k=Software+development+company&w1=Software+development+services&w2=Software+development&w3=Development+software&w4=Software+development+company&w5=Custom+software+development&c=5&s=154&g=2&.sig=vprGpfTz1GxuQRXlltd5Og">Software development company</a></li>
<li><a href="http://groups.yahoo.com/gads;_ylc=X3oDMTJjN2NyZWJoBF9TAzk3MzU5NzE0BF9wAzUEZ3JwSWQDMjQ5MzI0NQRncnBzcElkAzE3MDUwMDcxODEEc2VjA3NsbW9kBHN0aW1lAzExNjU5MTcxMTk-?t=ms&k=Custom+software+development&w1=Software+development+services&w2=Software+development&w3=Development+software&w4=Software+development+company&w5=Custom+software+development&c=5&s=154&g=2&.sig=GblHBdeKJR4WCTYIwY_tYA">Custom software development</a></li>
</ul>
</div>
<!-- Network content -->
<div id="nc">
<div class="ad">
<div id="hd1">Search Ads</div>
<p><a href="http://us.ard.yahoo.com/SIG=12h691efo/M=493064.8985663.9760769.8674578/D=groups/S=1705007181:NC/Y=YAHOO/EXP=1165924319/A=3848641/R=0/SIG=1312g85fq/*http://searchmarketing.yahoo.com/arp/srchv2.php?o=US2003&cmp=Yahoo&ctv=Groups2&s=Y&s2=&s3=&b=50">Get new customers.</a></p>
<p>List your web site</p>
<p>in Yahoo! Search.</p> </div>
<div class="ad">
<div id="hd1">Yahoo! Mail</div>
<p><a href="http://us.ard.yahoo.com/SIG=12hirr5b7/M=493064.8985657.9760727.8674578/D=groups/S=1705007181:NC/Y=YAHOO/EXP=1165924319/A=3848567/R=0/SIG=12jvenc9k/*http://us.rd.yahoo.com/evt=42408/*http://advision.webevents.yahoo.com/handraisers">Get on board</a></p>
<p>You're invited to try</p>
<p>the all-new Mail Beta.</p> </div>
<div class="ad">
<div id="hd1">Y! Messenger</div>
<p><a href="http://us.ard.yahoo.com/SIG=12h0rrrmb/M=493064.8985659.9760753.8674578/D=groups/S=1705007181:NC/Y=YAHOO/EXP=1165924319/A=3848577/R=0/SIG=12e714ic8/*http://us.rd.yahoo.com/evt=42403/*http://messenger.yahoo.com/feat_photos.php">Instant smiles</a></p>
<p>Share photos while</p>
<p>you IM friends.</p> </div>
</div>
</div> <!-- |**|end egp html banner|**| -->
<div style="clear:both; color: #FFF; font-size:1px;">.</div>
</div> <img src="http://geo.yahoo.com/serv?s=97359714/grpId=2493245/grpspId=1705007181/msgId=1474/stime=1165917119/nc1=3848641/nc2=3848567/nc3=3848577" width="1" height="1"> <br>
<span style="color: white;">__,_._,___</span>
<!--~-|**|PrettyHtmlEnd|**|-~-->
</body>
<!--~-|**|PrettyHtmlStart|**|-~-->
<head>
<style type="text/css">
<!--
#ygrp-mlmsg {font-size:13px; font-family: arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;}
#ygrp-mlmsg table {font-size:inherit;font:100%;}
#ygrp-mlmsg select, input, textarea {font:99% arial,helvetica,clean,sans-serif;}
#ygrp-mlmsg pre, code {font:115% monospace;*font-size:100%;}
#ygrp-mlmsg * {line-height:1.22em;}
#ygrp-text{
font-family: Georgia;
}
#ygrp-text p{
margin: 0 0 1em 0;
}
#ygrp-tpmsgs{
font-family: Arial;
clear: both;
}
#ygrp-vitnav{
padding-top: 10px;
font-family: Verdana;
font-size: 77%;
margin: 0;
}
#ygrp-vitnav a{
padding: 0 1px;
}
#ygrp-actbar{
clear: both;
margin: 25px 0;
white-space:nowrap;
color: #666;
text-align: right;
}
#ygrp-actbar .left{
float: left;
white-space:nowrap;
}
.bld{font-weight:bold;}
#ygrp-grft{
font-family: Verdana;
font-size: 77%;
padding: 15px 0;
}
#ygrp-ft{
font-family: verdana;
font-size: 77%;
border-top: 1px solid #666;
padding: 5px 0;
}
#ygrp-mlmsg #logo{
padding-bottom: 10px;
}
#ygrp-vital{
background-color: #e0ecee;
margin-bottom: 20px;
padding: 2px 0 8px 8px;
}
#ygrp-vital #vithd{
font-size: 77%;
font-family: Verdana;
font-weight: bold;
color: #333;
text-transform: uppercase;
}
#ygrp-vital ul{
padding: 0;
margin: 2px 0;
}
#ygrp-vital ul li{
list-style-type: none;
clear: both;
border: 1px solid #e0ecee;
}
#ygrp-vital ul li .ct{
font-weight: bold;
color: #ff7900;
float: right;
width: 2em;
text-align:right;
padding-right: .5em;
}
#ygrp-vital ul li .cat{
font-weight: bold;
}
#ygrp-vital a {
text-decoration: none;
}
#ygrp-vital a:hover{
text-decoration: underline;
}
#ygrp-sponsor #hd{
color: #999;
font-size: 77%;
}
#ygrp-sponsor #ov{
padding: 6px 13px;
background-color: #e0ecee;
margin-bottom: 20px;
}
#ygrp-sponsor #ov ul{
padding: 0 0 0 8px;
margin: 0;
}
#ygrp-sponsor #ov li{
list-style-type: square;
padding: 6px 0;
font-size: 77%;
}
#ygrp-sponsor #ov li a{
text-decoration: none;
font-size: 130%;
}
#ygrp-sponsor #nc {
background-color: #eee;
margin-bottom: 20px;
padding: 0 8px;
}
#ygrp-sponsor .ad{
padding: 8px 0;
}
#ygrp-sponsor .ad #hd1{
font-family: Arial;
font-weight: bold;
color: #628c2a;
font-size: 100%;
line-height: 122%;
}
#ygrp-sponsor .ad a{
text-decoration: none;
}
#ygrp-sponsor .ad a:hover{
text-decoration: underline;
}
#ygrp-sponsor .ad p{
margin: 0;
}
o {font-size: 0; }
.MsoNormal {
margin: 0 0 0 0;
}
#ygrp-text tt{
font-size: 120%;
}
blockquote{margin: 0 0 0 4px;}
.replbq {margin:4}
-->
</style>
</head>
<!--~-|**|PrettyHtmlEnd|**|-~-->
</html><!--End group email -->
--F4TLP1mZVOQkInDKxFS91RWG210zJDdsd8xeVh1--