comparison src/org/tmatesoft/hg/internal/PatchGenerator.java @ 538:dd4f6311af52

Commit: first working version
author Artem Tikhomirov <tikhomirov.artem@gmail.com>
date Tue, 05 Feb 2013 22:30:21 +0100
parents e6f72c9829a6
children 946b13196252
comparison
equal deleted inserted replaced
537:5a455624be4f 538:dd4f6311af52
23 import org.tmatesoft.hg.repo.HgDataFile; 23 import org.tmatesoft.hg.repo.HgDataFile;
24 import org.tmatesoft.hg.repo.HgLookup; 24 import org.tmatesoft.hg.repo.HgLookup;
25 import org.tmatesoft.hg.repo.HgRepository; 25 import org.tmatesoft.hg.repo.HgRepository;
26 26
27 /** 27 /**
28 * Mercurial cares about changes only up to the line level, e.g. a simple file version bump in manifest looks like (RevlogDump output): 28 * Mercurial cares about changes only up to the line level, e.g. a simple file version dump in manifest looks like (RevlogDump output):
29 * 29 *
30 * 522: 233748 0 103 17438 433 522 521 -1 756073cf2321df44d3ed0585f2a5754bc8a1b2f6 30 * 522: 233748 0 103 17438 433 522 521 -1 756073cf2321df44d3ed0585f2a5754bc8a1b2f6
31 * <PATCH>: 31 * <PATCH>:
32 * 3487..3578, 91:src/org/tmatesoft/hg/core/HgIterateDirection.java\00add61a8a665c5d8f092210767f812fe0d335ac8 32 * 3487..3578, 91:src/org/tmatesoft/hg/core/HgIterateDirection.java\00add61a8a665c5d8f092210767f812fe0d335ac8
33 * 33 *
175 } 175 }
176 } 176 }
177 } 177 }
178 178
179 public static void main(String[] args) throws Exception { 179 public static void main(String[] args) throws Exception {
180 PatchGenerator pg1 = new PatchGenerator();
181 pg1.init("hello".getBytes(), "hello\nworld".getBytes());
182 pg1.findMatchingBlocks();
183 if (Boolean.TRUE.booleanValue()) {
184 return;
185 }
180 HgRepository repo = new HgLookup().detectFromWorkingDir(); 186 HgRepository repo = new HgLookup().detectFromWorkingDir();
181 HgDataFile df = repo.getFileNode("cmdline/org/tmatesoft/hg/console/Main.java"); 187 HgDataFile df = repo.getFileNode("cmdline/org/tmatesoft/hg/console/Main.java");
182 ByteArrayChannel bac1, bac2; 188 ByteArrayChannel bac1, bac2;
183 df.content(80, bac1 = new ByteArrayChannel()); 189 df.content(80, bac1 = new ByteArrayChannel());
184 df.content(81, bac2 = new ByteArrayChannel()); 190 df.content(81, bac2 = new ByteArrayChannel());
221 } 227 }
222 } 228 }
223 if (lastStart < input.length) { 229 if (lastStart < input.length) {
224 lines.add(new ByteChain(lastStart, input.length)); 230 lines.add(new ByteChain(lastStart, input.length));
225 } 231 }
232 // empty chunk to keep offset of input end
233 lines.add(new ByteChain(input.length, input.length));
226 } 234 }
227 235
228 public ByteChain chunk(int index) { 236 public ByteChain chunk(int index) {
229 return lines.get(index); 237 return lines.get(index);
230 } 238 }