Merge lp:~salgado/linaro-image-tools/standardise-indentation into lp:linaro-image-tools/11.11

Proposed by Guilherme Salgado
Status: Merged
Merged at revision: 80
Proposed branch: lp:~salgado/linaro-image-tools/standardise-indentation
Merge into: lp:linaro-image-tools/11.11
Diff against target: 610 lines (+267/-269)
1 file modified
linaro-media-create (+267/-269)
To merge this branch: bzr merge lp:~salgado/linaro-image-tools/standardise-indentation
Reviewer Review Type Date Requested Status
Alexander Sack (community) Approve
Review via email: mp+35550@code.launchpad.net

Description of the change

linaro-media-create uses a mix of 1, 2 and 4 spaces for indentation. This is an attempt at standardizing at 2.

To post a comment you must log in.
Revision history for this message
Guilherme Salgado (salgado) wrote :

I suggest using bzr explorer to see the diff as it will show a side-by-side diff which makes it easy to see that it's just the indentation that's changed.

Revision history for this message
Alexander Sack (asac) wrote :

looks good. i didnt see any typos on eyeball review.

if you have a headless tarball at hand, try to burn it to a SD card to see if things work still ;)

another followup whitespace cleanup project might be to make all the if ... ; then cases consistent.

some use new line before then, some use whitespace before and after ; or just after or no whitespace.

i would be fine with new line before "then" everyhwere.

review: Approve
Revision history for this message
Guilherme Salgado (salgado) wrote :

Thanks for the review, Alexander.

I ran it on a headless tarball and it generated an image which was
exactly the same size as that generated by trunk's linaro-media-create.

I wasn't able to boot it using qemu but that's likely to not be related
to my changes as I can't boot the img generated with trunk's version
either.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'linaro-media-create'
2--- linaro-media-create 2010-09-14 23:59:33 +0000
3+++ linaro-media-create 2010-09-15 16:09:44 +0000
4@@ -132,256 +132,254 @@
5 }
6
7 create_partitions() {
8-if [ "${IMAGE_FILE}" ]; then
9-partdev=${IMAGE_FILE}
10-else
11-partdev=${MMC}
12-fi
13+ if [ "${IMAGE_FILE}" ]; then
14+ partdev=${IMAGE_FILE}
15+ else
16+ partdev=${MMC}
17+ fi
18
19-if [ "$FAT_SIZE" = "32" ]; then
20+ if [ "$FAT_SIZE" = "32" ]; then
21 PARTITION_TYPE="0x0C"
22-else
23+ else
24 PARTITION_TYPE="0x0E"
25-fi
26-
27-# Create a VFAT or FAT16 partition of 9 cylinders which is about 64M
28-# and a linux partition of the rest
29-
30-sudo sfdisk -D -H $HEADS -S $SECTORS $CYLINDER_ARG $partdev << THEEND
31+ fi
32+
33+ # Create a VFAT or FAT16 partition of 9 cylinders which is about 64M
34+ # and a linux partition of the rest
35+ sudo sfdisk -D -H $HEADS -S $SECTORS $CYLINDER_ARG $partdev << THEEND
36 ,9,$PARTITION_TYPE,*
37 ,,,-
38 THEEND
39
40-if [ "${IMAGE_FILE}" ]; then
41-VFATOFFSET=$(($(fdisk -l -u $IMAGE_FILE | grep FAT | awk '{print $3}')*512))
42-VFATSIZE=$(($(fdisk -l -u $IMAGE_FILE | grep FAT | awk '{print $5}')*1024))
43-ROOTOFFSET=$(($(fdisk -l -u $IMAGE_FILE | grep Linux | awk '{print $2}')*512))
44-ROOTSIZE2=$(($(fdisk -l -u $IMAGE_FILE | grep Linux | awk '{print $3}')))
45-ROOTSIZE1=$(($(fdisk -l -u $IMAGE_FILE | grep Linux | awk '{print $2}')))
46-ROOTSIZE=$((((ROOTSIZE2-ROOTSIZE1)/2)*1024))
47-MMC1=$(sudo losetup -f --show $IMAGE_FILE --offset $VFATOFFSET --sizelimit $VFATSIZE)
48-MMC2=$(sudo losetup -f --show $IMAGE_FILE --offset $ROOTOFFSET --sizelimit $ROOTSIZE)
49-fi
50+ if [ "${IMAGE_FILE}" ]; then
51+ VFATOFFSET=$(($(fdisk -l -u $IMAGE_FILE | grep FAT | awk '{print $3}')*512))
52+ VFATSIZE=$(($(fdisk -l -u $IMAGE_FILE | grep FAT | awk '{print $5}')*1024))
53+ ROOTOFFSET=$(($(fdisk -l -u $IMAGE_FILE | grep Linux | awk '{print $2}')*512))
54+ ROOTSIZE2=$(($(fdisk -l -u $IMAGE_FILE | grep Linux | awk '{print $3}')))
55+ ROOTSIZE1=$(($(fdisk -l -u $IMAGE_FILE | grep Linux | awk '{print $2}')))
56+ ROOTSIZE=$((((ROOTSIZE2-ROOTSIZE1)/2)*1024))
57+ MMC1=$(sudo losetup -f --show $IMAGE_FILE --offset $VFATOFFSET --sizelimit $VFATSIZE)
58+ MMC2=$(sudo losetup -f --show $IMAGE_FILE --offset $ROOTOFFSET --sizelimit $ROOTSIZE)
59+ fi
60 }
61
62
63 prepare_partitions() {
64-
65-echo ""
66-echo "Formating Boot Partition"
67-echo ""
68-
69-sudo mkfs.vfat -F ${FAT_SIZE} ${MMC1} -n ${BOOT_LABEL}
70-
71-echo ""
72-echo "Formating ${RFS} Partition"
73-echo ""
74-sudo mkfs.${RFS} -U "$RFS_UUID" ${MMC2} -L ${RFS_LABEL}
75+ echo ""
76+ echo "Formating Boot Partition"
77+ echo ""
78+
79+ sudo mkfs.vfat -F ${FAT_SIZE} ${MMC1} -n ${BOOT_LABEL}
80+
81+ echo ""
82+ echo "Formating ${RFS} Partition"
83+ echo ""
84+ sudo mkfs.${RFS} -U "$RFS_UUID" ${MMC2} -L ${RFS_LABEL}
85 }
86
87 populate_boot() {
88- echo ""
89- echo "Populating Boot Partition"
90- echo ""
91-
92- echo ""
93- echo "Installing Boot Loader"
94- echo ""
95-
96- if [ "$IS_LIVE" ]; then
97- parts_dir=casper
98- else
99- parts_dir=boot
100- fi
101-
102- mkdir -p ${DIR}/disk || true
103- sudo mount ${MMC1} ${DIR}/disk
104- case "$DEVIMAGE" in
105- beagle|igep)
106- if [ "$DEVIMAGE" = "beagle" ]; then
107- if [ -e binary/${parts_dir}/${MLO_FILE} ] && [ -e binary/${parts_dir}/${UBOOT_FILE} ]; then
108- sudo cp -v binary/${parts_dir}/${MLO_FILE} ${DIR}/disk/MLO
109- sudo cp -v binary/${parts_dir}/${UBOOT_FILE} ${DIR}/disk/u-boot.bin
110- fi
111- fi
112- sync
113- cd ${DIR}
114- echo "done"
115-
116- sudo mkimage -A arm -O linux -T kernel -C none -a 0x80008000 \
117- -e 0x80008000 -n Linux -d "${DIR}/binary/${parts_dir}"/vmlinuz-*omap \
118- "${DIR}/disk/uImage"
119-
120- sudo mkimage -A arm -O linux -T ramdisk -C none -a 0 \
121- -e 0 -n initramfs -d "${DIR}/binary/${parts_dir}"/initrd.img-*-omap \
122- "${DIR}/disk/uInitrd"
123-
124- sudo mkimage -A arm -O linux -T script -C none -a 0 \
125- -e 0 -n "$CODENAME 10.05" -d "${DIR}/binary/boot.cmd" \
126- "${DIR}/disk/boot.scr"
127- sudo cp -v ${DIR}/disk/boot.scr ${DIR}/disk/boot.ini
128- ;;
129- vexpress)
130- sudo tar --strip-components=5 -C ${DIR}/disk/ -xf $BINARY_TARBALL binary/usr/lib/u-boot/ca9x4_ct_vxp/u-boot.bin
131- sudo mkimage -A arm -O linux -T kernel -C none -a 0x60008000 -e 0x60008000 \
132- -n "Linux" -d ${DIR}/binary/${parts_dir}/vmlinuz*-vexpress ${DIR}/disk/uImage
133- sudo mkimage -A arm -O linux -T ramdisk -C none -a 0x81000000 \
134- -e 0x81000000 -n "initramfs" -d \
135- ${DIR}/binary/${parts_dir}/initrd.img-*-linaro-vexpress \
136- "${DIR}"/disk/uInitrd
137- ;;
138- *)
139- echo "Set --dev parameter: --dev <beagle|igep|vexpress>" 1>&2
140- cleanup_workdir
141- exit
142- ;;
143- esac
144-
145- cd ${DIR}/disk/
146- sync
147- sync
148- cd ${DIR}/
149-
150- sudo umount ${DIR}/disk || true
151+ echo ""
152+ echo "Populating Boot Partition"
153+ echo ""
154+
155+ echo ""
156+ echo "Installing Boot Loader"
157+ echo ""
158+
159+ if [ "$IS_LIVE" ]; then
160+ parts_dir=casper
161+ else
162+ parts_dir=boot
163+ fi
164+
165+ mkdir -p ${DIR}/disk || true
166+ sudo mount ${MMC1} ${DIR}/disk
167+ case "$DEVIMAGE" in
168+ beagle|igep)
169+ if [ "$DEVIMAGE" = "beagle" ]; then
170+ if [ -e binary/${parts_dir}/${MLO_FILE} ] && [ -e binary/${parts_dir}/${UBOOT_FILE} ]; then
171+ sudo cp -v binary/${parts_dir}/${MLO_FILE} ${DIR}/disk/MLO
172+ sudo cp -v binary/${parts_dir}/${UBOOT_FILE} ${DIR}/disk/u-boot.bin
173+ fi
174+ fi
175+ sync
176+ cd ${DIR}
177+ echo "done"
178+
179+ sudo mkimage -A arm -O linux -T kernel -C none -a 0x80008000 \
180+ -e 0x80008000 -n Linux -d "${DIR}/binary/${parts_dir}"/vmlinuz-*omap \
181+ "${DIR}/disk/uImage"
182+
183+ sudo mkimage -A arm -O linux -T ramdisk -C none -a 0 \
184+ -e 0 -n initramfs -d "${DIR}/binary/${parts_dir}"/initrd.img-*-omap \
185+ "${DIR}/disk/uInitrd"
186+
187+ sudo mkimage -A arm -O linux -T script -C none -a 0 \
188+ -e 0 -n "$CODENAME 10.05" -d "${DIR}/binary/boot.cmd" \
189+ "${DIR}/disk/boot.scr"
190+ sudo cp -v ${DIR}/disk/boot.scr ${DIR}/disk/boot.ini
191+ ;;
192+ vexpress)
193+ sudo tar --strip-components=5 -C ${DIR}/disk/ -xf $BINARY_TARBALL binary/usr/lib/u-boot/ca9x4_ct_vxp/u-boot.bin
194+ sudo mkimage -A arm -O linux -T kernel -C none -a 0x60008000 -e 0x60008000 \
195+ -n "Linux" -d ${DIR}/binary/${parts_dir}/vmlinuz*-vexpress ${DIR}/disk/uImage
196+ sudo mkimage -A arm -O linux -T ramdisk -C none -a 0x81000000 \
197+ -e 0x81000000 -n "initramfs" -d \
198+ ${DIR}/binary/${parts_dir}/initrd.img-*-linaro-vexpress \
199+ "${DIR}"/disk/uInitrd
200+ ;;
201+ *)
202+ echo "Set --dev parameter: --dev <beagle|igep|vexpress>" 1>&2
203+ cleanup_workdir
204+ exit
205+ ;;
206+ esac
207+
208+ cd ${DIR}/disk/
209+ sync
210+ sync
211+ cd ${DIR}/
212+
213+ sudo umount ${DIR}/disk || true
214 }
215
216 populate_rootfs() {
217- echo ""
218- echo "Populating rootfs Partition"
219- echo "Be patient, this may take a few minutes"
220- echo ""
221- sudo mount ${MMC2} ${DIR}/disk
222-
223- sudo tar -xf $BINARY_TARBALL --strip-components=1 -C disk/
224-
225-# add fstab entry for rootfs and boot
226- echo "UUID=${RFS_UUID} / ${RFS} errors=remount-ro 0 1 " | sudo tee -a ${DIR}/disk/etc/fstab
227-
228- if [ "$CREATE_SWAP" ] ; then
229-
230- echo ""
231- echo "Creating SWAP File"
232- echo ""
233-
234- SPACE_LEFT=$(df ${DIR}/disk/ | grep ${MMC2} | awk '{print $4}')
235-
236- let SIZE=$SWAP_SIZE*1024
237-
238- if [ $SPACE_LEFT -ge $SIZE ] ; then
239- sudo dd if=/dev/zero of=${DIR}/disk/SWAP.swap bs=1M count=$SWAP_SIZE
240- sudo mkswap ${DIR}/disk/SWAP.swap
241- echo "/SWAP.swap none swap sw 0 0" | sudo tee -a ${DIR}/disk/etc/fstab
242- else
243- echo "SWAP file bigger then whats left on partition"
244+ echo ""
245+ echo "Populating rootfs Partition"
246+ echo "Be patient, this may take a few minutes"
247+ echo ""
248+ sudo mount ${MMC2} ${DIR}/disk
249+
250+ sudo tar -xf $BINARY_TARBALL --strip-components=1 -C disk/
251+
252+## add fstab entry for rootfs and boot
253+ echo "UUID=${RFS_UUID} / ${RFS} errors=remount-ro 0 1 " | sudo tee -a ${DIR}/disk/etc/fstab
254+
255+ if [ "$CREATE_SWAP" ] ; then
256+
257+ echo ""
258+ echo "Creating SWAP File"
259+ echo ""
260+
261+ SPACE_LEFT=$(df ${DIR}/disk/ | grep ${MMC2} | awk '{print $4}')
262+
263+ let SIZE=$SWAP_SIZE*1024
264+
265+ if [ $SPACE_LEFT -ge $SIZE ] ; then
266+ sudo dd if=/dev/zero of=${DIR}/disk/SWAP.swap bs=1M count=$SWAP_SIZE
267+ sudo mkswap ${DIR}/disk/SWAP.swap
268+ echo "/SWAP.swap none swap sw 0 0" | sudo tee -a ${DIR}/disk/etc/fstab
269+ else
270+ echo "SWAP file bigger then whats left on partition"
271+ fi
272 fi
273- fi
274-
275- echo ""
276- echo "Creating /etc/flash-kernel.conf"
277- echo ""
278-
279- echo "UBOOT_PART=/dev/mmcblk0p1" > ${DIR}/disk/etc/flash-kernel.conf
280-
281- cd ${DIR}/disk/
282- sync
283- sync
284- cd ${DIR}/
285-
286- sudo umount ${DIR}/disk || true
287+
288+ echo ""
289+ echo "Creating /etc/flash-kernel.conf"
290+ echo ""
291+
292+ echo "UBOOT_PART=/dev/mmcblk0p1" > ${DIR}/disk/etc/flash-kernel.conf
293+
294+ cd ${DIR}/disk/
295+ sync
296+ sync
297+ cd ${DIR}/
298+
299+ sudo umount ${DIR}/disk || true
300 }
301
302 check_mmc() {
303- FDISK=$(sudo LC_ALL=C sfdisk -l | grep "[Disk] ${MMC}" | awk '{print $2}')
304+ FDISK=$(sudo LC_ALL=C sfdisk -l | grep "[Disk] ${MMC}" | awk '{print $2}')
305
306- if test "-$FDISK-" = "-$MMC:-"
307- then
308- echo ""
309- echo "I see..."
310- echo "sudo sfdisk -l:"
311- sudo LC_ALL=C sfdisk -l | grep "[Disk] /dev/" --color=never
312- echo ""
313- echo "mount:"
314- mount | grep -v none | grep "/dev/" --color=never
315- echo ""
316- read -p "Are you 100% sure, on selecting [${MMC}] (y/n)? "
317- [ "$REPLY" == "y" ] || exit
318- echo ""
319- else
320- echo ""
321- echo "Are you sure? I Don't see [${MMC}], here is what I do see..."
322- echo ""
323- echo "sudo sfdisk -l:"
324- sudo LC_ALL=C sfdisk -l | grep "[Disk] /dev/" --color=never
325- echo ""
326- echo "mount:"
327- mount | grep -v none | grep "/dev/" --color=never
328- echo ""
329- exit
330- fi
331+ if test "-$FDISK-" = "-$MMC:-"
332+ then
333+ echo ""
334+ echo "I see..."
335+ echo "sudo sfdisk -l:"
336+ sudo LC_ALL=C sfdisk -l | grep "[Disk] /dev/" --color=never
337+ echo ""
338+ echo "mount:"
339+ mount | grep -v none | grep "/dev/" --color=never
340+ echo ""
341+ read -p "Are you 100% sure, on selecting [${MMC}] (y/n)? "
342+ [ "$REPLY" == "y" ] || exit
343+ echo ""
344+ else
345+ echo ""
346+ echo "Are you sure? I Don't see [${MMC}], here is what I do see..."
347+ echo ""
348+ echo "sudo sfdisk -l:"
349+ sudo LC_ALL=C sfdisk -l | grep "[Disk] /dev/" --color=never
350+ echo ""
351+ echo "mount:"
352+ mount | grep -v none | grep "/dev/" --color=never
353+ echo ""
354+ exit
355+ fi
356 }
357
358 check_fs_type() {
359- IN_VALID_FS=1
360-
361- if test "-$FS_TYPE-" = "-ext2-"
362- then
363- RFS=ext2
364- unset IN_VALID_FS
365- fi
366-
367- if test "-$FS_TYPE-" = "-ext3-"
368- then
369- RFS=ext3
370- unset IN_VALID_FS
371- fi
372-
373- if test "-$FS_TYPE-" = "-ext4-"
374- then
375- RFS=ext4
376- unset IN_VALID_FS
377- fi
378-
379- if test "-$FS_TYPE-" = "-btrfs-"
380- then
381- RFS=btrfs
382- unset IN_VALID_FS
383- fi
384-
385- if [ "$IN_VALID_FS" ] ; then
386- usage
387- fi
388+ IN_VALID_FS=1
389+
390+ if test "-$FS_TYPE-" = "-ext2-"
391+ then
392+ RFS=ext2
393+ unset IN_VALID_FS
394+ fi
395+
396+ if test "-$FS_TYPE-" = "-ext3-"
397+ then
398+ RFS=ext3
399+ unset IN_VALID_FS
400+ fi
401+
402+ if test "-$FS_TYPE-" = "-ext4-"
403+ then
404+ RFS=ext4
405+ unset IN_VALID_FS
406+ fi
407+
408+ if test "-$FS_TYPE-" = "-btrfs-"
409+ then
410+ RFS=btrfs
411+ unset IN_VALID_FS
412+ fi
413+
414+ if [ "$IN_VALID_FS" ] ; then
415+ usage
416+ fi
417 }
418
419 calculatesize() {
420- IMAGE_SIZE=${IMAGE_SIZE/G/M*1024}
421- IMAGE_SIZE=${IMAGE_SIZE/M/K*1024}
422- IMAGE_SIZE=${IMAGE_SIZE/K/*1024}
423- IMAGE_SIZE=$(($IMAGE_SIZE))
424+ IMAGE_SIZE=${IMAGE_SIZE/G/M*1024}
425+ IMAGE_SIZE=${IMAGE_SIZE/M/K*1024}
426+ IMAGE_SIZE=${IMAGE_SIZE/K/*1024}
427+ IMAGE_SIZE=$(($IMAGE_SIZE))
428 }
429
430 setup_sizes() {
431- HEADS=255
432- SECTORS=63
433- SECTORSIZE=512
434- if [ "${IMAGE_FILE}" ]; then
435+ HEADS=255
436+ SECTORS=63
437+ SECTORSIZE=512
438+ if [ "${IMAGE_FILE}" ]; then
439 calculatesize
440 CYLINDERSIZE=$(($HEADS*$SECTORS*$SECTORSIZE))
441 CYLINDERS=$(($IMAGE_SIZE/$CYLINDERSIZE))
442 CYLINDER_ARG="-C $CYLINDERS"
443 IMAGE_SIZE=$(($CYLINDERS*$CYLINDERSIZE))
444- else
445+ else
446 CYLINDER_ARG=""
447- fi
448+ fi
449 }
450
451 setup_image() {
452- sudo qemu-img create -f raw $IMAGE_FILE $IMAGE_SIZE
453+ sudo qemu-img create -f raw $IMAGE_FILE $IMAGE_SIZE
454 }
455
456 usage() {
457- echo "usage: $(basename $0) --mmc /dev/sdd"
458- echo "<or>"
459- echo "usage: $(basename $0) --image_file mmc.img"
460+ echo "usage: $(basename $0) --mmc /dev/sdd"
461+ echo "<or>"
462+ echo "usage: $(basename $0) --image_file mmc.img"
463 cat <<EOF
464
465 required options:
466@@ -440,10 +438,10 @@
467 }
468
469 checkparm() {
470- if [ "$(echo $1|grep ^'\-')" ];then
471- echo "E: Need an argument"
472- usage
473- fi
474+ if [ "$(echo $1|grep ^'\-')" ];then
475+ echo "E: Need an argument"
476+ usage
477+ fi
478 }
479
480 cleanup_workdir() {
481@@ -457,63 +455,63 @@
482
483 # parse commandline options
484 while [ ! -z "$1" ]; do
485- case $1 in
486- -h|--help)
487- usage
488- MMC=1
489- ;;
490- --mmc)
491- checkparm $2
492- MMC="$2"
493- check_mmc
494- ;;
495- --image_file)
496- checkparm $2
497- IMAGE_FILE="$2"
498- ;;
499- --image_size)
500- checkparm $2
501- IMAGE_SIZE=$2
502- ;;
503- --rootfs)
504- checkparm $2
505- FS_TYPE="$2"
506- check_fs_type
507- ;;
508- --boot_label)
509- checkparm $2
510- BOOT_LABEL="$2"
511- ;;
512- --rfs_label)
513- checkparm $2
514- RFS_LABEL="$2"
515- ;;
516- --swap_file)
517- checkparm $2
518- SWAP_SIZE="$2"
519- CREATE_SWAP=1
520- ;;
521- --live)
522- IS_LIVE=1
523- ;;
524- --live-256m)
525- IS_LIVE=1
526- IS_LOWMEM=1
527- ;;
528- --console)
529- checkparm $2
530- consoles="$consoles $2"
531- ;;
532- --dev)
533- checkparm $2
534- DEVIMAGE=$2
535- ;;
536- --binary)
537- checkparm $2
538- BINARY_TARBALL="$2"
539- ;;
540- esac
541- shift
542+ case $1 in
543+ -h|--help)
544+ usage
545+ MMC=1
546+ ;;
547+ --mmc)
548+ checkparm $2
549+ MMC="$2"
550+ check_mmc
551+ ;;
552+ --image_file)
553+ checkparm $2
554+ IMAGE_FILE="$2"
555+ ;;
556+ --image_size)
557+ checkparm $2
558+ IMAGE_SIZE=$2
559+ ;;
560+ --rootfs)
561+ checkparm $2
562+ FS_TYPE="$2"
563+ check_fs_type
564+ ;;
565+ --boot_label)
566+ checkparm $2
567+ BOOT_LABEL="$2"
568+ ;;
569+ --rfs_label)
570+ checkparm $2
571+ RFS_LABEL="$2"
572+ ;;
573+ --swap_file)
574+ checkparm $2
575+ SWAP_SIZE="$2"
576+ CREATE_SWAP=1
577+ ;;
578+ --live)
579+ IS_LIVE=1
580+ ;;
581+ --live-256m)
582+ IS_LIVE=1
583+ IS_LOWMEM=1
584+ ;;
585+ --console)
586+ checkparm $2
587+ consoles="$consoles $2"
588+ ;;
589+ --dev)
590+ checkparm $2
591+ DEVIMAGE=$2
592+ ;;
593+ --binary)
594+ checkparm $2
595+ BINARY_TARBALL="$2"
596+ ;;
597+ esac
598+ shift
599 done
600
601 setup_sizes
602@@ -559,7 +557,7 @@
603 fi
604
605 if [ ! "${MMC}" -a ! "${IMAGE_FILE}" ]; then
606- usage
607+ usage
608 fi
609
610 prepare_sources

Subscribers

People subscribed via source and target branches